From 9c9e10758264414dbf7469413bfb63b0e806635e Mon Sep 17 00:00:00 2001 From: Quentin Chateau Date: Tue, 22 Dec 2020 22:24:53 +0100 Subject: [PATCH 001/171] Fix semantic highlight scheduling If `provider.provideDocumentSemanticTokens` returns null (which is the case when the server cancels the request with the error code `ContentModified`) then the semantic token call would not be rescheduled even if there were pending changes. This commit makes sure the call is always rescheduled if there are pending changes. --- .../common/services/modelServiceImpl.ts | 23 +++++++++++++------ 1 file changed, 16 insertions(+), 7 deletions(-) diff --git a/src/vs/editor/common/services/modelServiceImpl.ts b/src/vs/editor/common/services/modelServiceImpl.ts index 8667276868a..8ea61ac6aba 100644 --- a/src/vs/editor/common/services/modelServiceImpl.ts +++ b/src/vs/editor/common/services/modelServiceImpl.ts @@ -847,6 +847,14 @@ class ModelSemanticColoring extends Disposable { private _setDocumentSemanticTokens(provider: DocumentSemanticTokensProvider | null, tokens: SemanticTokens | SemanticTokensEdits | null, styling: SemanticTokensProviderStyling | null, pendingChanges: IModelContentChangedEvent[]): void { const currentResponse = this._currentDocumentResponse; + const rescheduleIfNeeded = () => { + if (pendingChanges.length > 0 && !this._fetchDocumentSemanticTokens.isScheduled()) { + this._fetchDocumentSemanticTokens.schedule(); + return true; + } + return false; + }; + if (this._currentDocumentResponse) { this._currentDocumentResponse.dispose(); this._currentDocumentResponse = null; @@ -863,7 +871,10 @@ class ModelSemanticColoring extends Disposable { return; } if (!tokens) { - this._model.setSemanticTokens(null, true); + // Only reset semantic tokens if we did not reschedule to avoid "blinking" tokens + if (!rescheduleIfNeeded()) { + this._model.setSemanticTokens(null, true); + } return; } @@ -937,17 +948,15 @@ class ModelSemanticColoring extends Disposable { } } } - - if (!this._fetchDocumentSemanticTokens.isScheduled()) { - this._fetchDocumentSemanticTokens.schedule(); - } } this._model.setSemanticTokens(result, true); - return; + } + else { + this._model.setSemanticTokens(null, true); } - this._model.setSemanticTokens(null, true); + rescheduleIfNeeded(); } private _getSemanticColoringProvider(): DocumentSemanticTokensProvider | null { From 0a28ec7fb144952f75305a4d94d25e6694851ea2 Mon Sep 17 00:00:00 2001 From: gjsjohnmurray Date: Tue, 12 Jan 2021 12:51:15 +0000 Subject: [PATCH 002/171] fix #37570 add RELATIVE_FILEPATH snippet variable --- src/vs/editor/contrib/snippet/snippetVariables.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vs/editor/contrib/snippet/snippetVariables.ts b/src/vs/editor/contrib/snippet/snippetVariables.ts index 547db7bd7fc..422091b3650 100644 --- a/src/vs/editor/contrib/snippet/snippetVariables.ts +++ b/src/vs/editor/contrib/snippet/snippetVariables.ts @@ -43,6 +43,7 @@ export const KnownSnippetVariableNames: { [key: string]: true } = Object.freeze( 'TM_FILENAME_BASE': true, 'TM_DIRECTORY': true, 'TM_FILEPATH': true, + 'RELATIVE_FILEPATH': true, 'BLOCK_COMMENT_START': true, 'BLOCK_COMMENT_END': true, 'LINE_COMMENT': true, @@ -179,6 +180,8 @@ export class ModelBasedVariableResolver implements VariableResolver { } else if (name === 'TM_FILEPATH' && this._labelService) { return this._labelService.getUriLabel(this._model.uri); + } else if (name === 'RELATIVE_FILEPATH' && this._labelService) { + return this._labelService.getUriLabel(this._model.uri, { relative: true, noPrefix: true }); } return undefined; From 6430ee1efce26e2386fef52fd399cd2d2be90832 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 12 Jan 2021 09:39:45 -0800 Subject: [PATCH 003/171] Basic flow control for ext host processes Part of #113827 --- .../api/browser/mainThreadTerminalService.ts | 10 ++++--- .../workbench/api/common/extHost.protocol.ts | 5 ++-- .../api/common/extHostTerminalService.ts | 11 ++++++++ .../terminal/browser/remoteTerminalService.ts | 4 +++ .../terminal/browser/terminalInstance.ts | 7 ++++- .../browser/terminalProcessExtHostProxy.ts | 14 +++++++--- .../browser/terminalProcessManager.ts | 9 ++++-- .../contrib/terminal/common/terminal.ts | 19 +++++++++++-- .../terminal/common/terminalDataBuffering.ts | 18 +++++++----- .../contrib/terminal/node/terminalProcess.ts | 28 ++++++++++++++++--- .../test/common/terminalDataBuffering.test.ts | 4 ++- 11 files changed, 102 insertions(+), 27 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadTerminalService.ts b/src/vs/workbench/api/browser/mainThreadTerminalService.ts index cf16787d23b..f9dda5e5474 100644 --- a/src/vs/workbench/api/browser/mainThreadTerminalService.ts +++ b/src/vs/workbench/api/browser/mainThreadTerminalService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { DisposableStore, Disposable, IDisposable } from 'vs/base/common/lifecycle'; -import { IShellLaunchConfig, ITerminalProcessExtHostProxy, ISpawnExtHostProcessRequest, ITerminalDimensions, IAvailableShellsRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IShellLaunchConfig, ITerminalProcessExtHostProxy, ISpawnExtHostProcessRequest, ITerminalDimensions, IAvailableShellsRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; import { ExtHostContext, ExtHostTerminalServiceShape, MainThreadTerminalServiceShape, MainContext, IExtHostContext, IShellLaunchConfigDto, TerminalLaunchConfig, ITerminalDimensionsDto, TerminalIdentifier } from 'vs/workbench/api/common/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { URI } from 'vs/base/common/uri'; @@ -168,7 +168,8 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape public $startSendingDataEvents(): void { if (!this._dataEventTracker) { this._dataEventTracker = this._instantiationService.createInstance(TerminalDataEventTracker, (id, data) => { - this._onTerminalData(id, data); + const d = typeof data === 'string' ? data : data.data; + this._onTerminalData(id, d); }); // Send initial events if they exist this._terminalService.terminalInstances.forEach(t => { @@ -272,6 +273,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape request.isWorkspaceShellAllowed ).then(request.callback, request.callback); + proxy.onAcknowledgeDataEvent(ackId => this._proxy.$acceptProcessAckDataEvent(proxy.terminalId, ackId)); proxy.onInput(data => this._proxy.$acceptProcessInput(proxy.terminalId, data)); proxy.onResize(dimensions => this._proxy.$acceptProcessResize(proxy.terminalId, dimensions.cols, dimensions.rows)); proxy.onShutdown(immediate => this._proxy.$acceptProcessShutdown(proxy.terminalId, immediate)); @@ -310,7 +312,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape } } - public $sendProcessData(terminalId: number, data: string): void { + public $sendProcessData(terminalId: number, data: string | IProcessDataWithAckEvent): void { const terminalProcess = this._terminalProcessProxies.get(terminalId); if (terminalProcess) { terminalProcess.emitData(data); @@ -423,7 +425,7 @@ class TerminalDataEventTracker extends Disposable { private readonly _bufferer: TerminalDataBufferer; constructor( - private readonly _callback: (id: number, data: string) => void, + private readonly _callback: (id: number, data: string | IProcessDataWithAckEvent) => void, @ITerminalService private readonly _terminalService: ITerminalService ) { super(); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 1da90521b7b..819a27528fb 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -41,7 +41,7 @@ import * as tasks from 'vs/workbench/api/common/shared/tasks'; import { IRevealOptions, ITreeItem } from 'vs/workbench/common/views'; import { IAdapterDescriptor, IConfig, IDebugSessionReplMode } from 'vs/workbench/contrib/debug/common/debug'; import { ITextQueryBuilderOptions } from 'vs/workbench/contrib/search/common/queryBuilder'; -import { ITerminalDimensions, IShellLaunchConfig, ITerminalLaunchError } from 'vs/workbench/contrib/terminal/common/terminal'; +import { ITerminalDimensions, IShellLaunchConfig, ITerminalLaunchError, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; import { ActivationKind, ExtensionActivationError, ExtensionHostKind } from 'vs/workbench/services/extensions/common/extensions'; import { createExtHostContextProxyIdentifier as createExtId, createMainContextProxyIdentifier as createMainId, IRPCProtocol } from 'vs/workbench/services/extensions/common/proxyIdentifier'; import * as search from 'vs/workbench/services/search/common/search'; @@ -480,7 +480,7 @@ export interface MainThreadTerminalServiceShape extends IDisposable { // Process $sendProcessTitle(terminalId: number, title: string): void; - $sendProcessData(terminalId: number, data: string): void; + $sendProcessData(terminalId: number, data: string | IProcessDataWithAckEvent): void; $sendProcessReady(terminalId: number, pid: number, cwd: string): void; $sendProcessExit(terminalId: number, exitCode: number | undefined): void; $sendProcessInitialCwd(terminalId: number, cwd: string): void; @@ -1545,6 +1545,7 @@ export interface ExtHostTerminalServiceShape { $acceptTerminalMaximumDimensions(id: number, cols: number, rows: number): void; $spawnExtHostProcess(id: number, shellLaunchConfig: IShellLaunchConfigDto, activeWorkspaceRootUri: UriComponents | undefined, cols: number, rows: number, isWorkspaceShellAllowed: boolean): Promise; $startExtensionTerminal(id: number, initialDimensions: ITerminalDimensionsDto | undefined): Promise; + $acceptProcessAckDataEvent(id: number, ackId: number): void; $acceptProcessInput(id: number, data: string): void; $acceptProcessResize(id: number, cols: number, rows: number): void; $acceptProcessShutdown(id: number, immediate: boolean): void; diff --git a/src/vs/workbench/api/common/extHostTerminalService.ts b/src/vs/workbench/api/common/extHostTerminalService.ts index 00e09861cfb..8d96e657b59 100644 --- a/src/vs/workbench/api/common/extHostTerminalService.ts +++ b/src/vs/workbench/api/common/extHostTerminalService.ts @@ -220,6 +220,13 @@ export class ExtHostPseudoterminal implements ITerminalChildProcess { } } + acknowledgeDataEvent(ackId: number): void { + // TODO: Determine whether ExtHostPseudoterminal terminals should support flow control, this + // would need resume/pause APIs + + // No-op + } + getInitialCwd(): Promise { return Promise.resolve(''); } @@ -488,6 +495,10 @@ export abstract class BaseExtHostTerminalService extends Disposable implements I return disposables; } + public $acceptProcessAckDataEvent(id: number, ackId: number): void { + this._terminalProcesses.get(id)?.acknowledgeDataEvent(ackId); + } + public $acceptProcessInput(id: number, data: string): void { this._terminalProcesses.get(id)?.input(data); } diff --git a/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts b/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts index b2b5ec36d29..c7be47e5214 100644 --- a/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts @@ -252,6 +252,10 @@ export class RemoteTerminalProcess extends Disposable implements ITerminalChildP }); } + public acknowledgeDataEvent(ackId: number): void { + // TODO: Support flow control for server spawned processes + } + public async getInitialCwd(): Promise { await this._startBarrier.wait(); return this._remoteTerminalChannel.getTerminalInitialCwd(this._remoteTerminalId); diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 8ef61e3bbe0..ffca11edf46 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1019,7 +1019,12 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { this._xtermCore?.writeSync(ev.data); } else { const messageId = ++this._latestXtermWriteData; - this._xterm?.write(ev.data, () => this._latestXtermParseData = messageId); + this._xterm?.write(ev.data, () => { + this._latestXtermParseData = messageId; + if (ev.dataAckId !== undefined) { + this._processManager.acknowledgeDataEvent(ev.dataAckId); + } + }); } } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts index c7069f89ff0..9a713b7f16a 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { Event, Emitter } from 'vs/base/common/event'; -import { ITerminalProcessExtHostProxy, IShellLaunchConfig, ITerminalChildProcess, ITerminalConfigHelper, ITerminalDimensions, ITerminalLaunchError, ITerminalDimensionsOverride } from 'vs/workbench/contrib/terminal/common/terminal'; +import { ITerminalProcessExtHostProxy, IShellLaunchConfig, ITerminalChildProcess, ITerminalConfigHelper, ITerminalDimensions, ITerminalLaunchError, ITerminalDimensionsOverride, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; import { Disposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; @@ -15,8 +15,8 @@ let hasReceivedResponseFromRemoteExtHost: boolean = false; export class TerminalProcessExtHostProxy extends Disposable implements ITerminalChildProcess, ITerminalProcessExtHostProxy { - private readonly _onProcessData = this._register(new Emitter()); - public readonly onProcessData: Event = this._onProcessData.event; + private readonly _onProcessData = this._register(new Emitter()); + public readonly onProcessData: Event = this._onProcessData.event; private readonly _onProcessExit = this._register(new Emitter()); public readonly onProcessExit: Event = this._onProcessExit.event; private readonly _onProcessReady = this._register(new Emitter<{ pid: number, cwd: string }>()); @@ -34,6 +34,8 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal public readonly onInput: Event = this._onInput.event; private readonly _onResize: Emitter<{ cols: number, rows: number }> = this._register(new Emitter<{ cols: number, rows: number }>()); public readonly onResize: Event<{ cols: number, rows: number }> = this._onResize.event; + private readonly _onAcknowledgeDataEvent = this._register(new Emitter()); + public readonly onAcknowledgeDataEvent: Event = this._onAcknowledgeDataEvent.event; private readonly _onShutdown = this._register(new Emitter()); public readonly onShutdown: Event = this._onShutdown.event; private readonly _onRequestInitialCwd = this._register(new Emitter()); @@ -60,7 +62,7 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal super(); } - public emitData(data: string): void { + public emitData(data: string | IProcessDataWithAckEvent): void { this._onProcessData.fire(data); } @@ -139,6 +141,10 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal this._onResize.fire({ cols, rows }); } + public acknowledgeDataEvent(ackId: number): void { + this._onAcknowledgeDataEvent.fire(ackId); + } + public getInitialCwd(): Promise { return new Promise(resolve => { this._onRequestInitialCwd.fire(); diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts index 043a6e04af7..d4548a8ad2d 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts @@ -175,11 +175,12 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce this._process.onProcessData(ev => { const data = (typeof ev === 'string' ? ev : ev.data); - const sync = (typeof ev === 'string' ? false : ev.sync); + const sync = (typeof ev === 'string' || 'ackId' in ev ? false : ev.sync); + const dataAckId = (typeof ev !== 'string' && 'ackId' in ev ? ev.ackId : undefined); const beforeProcessDataEvent: IBeforeProcessDataEvent = { data }; this._onBeforeProcessData.fire(beforeProcessDataEvent); if (beforeProcessDataEvent.data && beforeProcessDataEvent.data.length > 0) { - this._onProcessData.fire({ data: beforeProcessDataEvent.data, sync }); + this._onProcessData.fire({ data: beforeProcessDataEvent.data, sync, dataAckId }); } }); @@ -331,6 +332,10 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce return Promise.resolve(this._latency); } + public acknowledgeDataEvent(ackId: number): void { + this._process?.acknowledgeDataEvent(ackId); + } + private _onExit(exitCode: number | undefined): void { this._process = null; diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index a3b3f9eff25..c45ce933b8b 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -354,6 +354,12 @@ export interface IBeforeProcessDataEvent { export interface IProcessDataEvent { data: string; sync: boolean; + dataAckId?: number; +} + +export interface IProcessDataWithAckEvent { + data: string; + ackId: number; } export interface ITerminalProcessManager extends IDisposable { @@ -379,6 +385,7 @@ export interface ITerminalProcessManager extends IDisposable { createProcess(shellLaunchConfig: IShellLaunchConfig, cols: number, rows: number, isScreenReaderModeEnabled: boolean): Promise; write(data: string): void; setDimensions(cols: number, rows: number): void; + acknowledgeDataEvent(ackId: number): void; getInitialCwd(): Promise; getCwd(): Promise; @@ -407,7 +414,7 @@ export const enum ProcessState { export interface ITerminalProcessExtHostProxy extends IDisposable { readonly terminalId: number; - emitData(data: string): void; + emitData(data: string | IProcessDataWithAckEvent): void; emitTitle(title: string): void; emitReady(pid: number, cwd: string): void; emitExit(exitCode: number | undefined): void; @@ -419,6 +426,7 @@ export interface ITerminalProcessExtHostProxy extends IDisposable { onInput: Event; onResize: Event<{ cols: number, rows: number }>; + onAcknowledgeDataEvent: Event; onShutdown: Event; onRequestInitialCwd: Event; onRequestCwd: Event; @@ -482,7 +490,7 @@ export interface ITerminalLaunchError { * child_process.ChildProcess node.js interface. */ export interface ITerminalChildProcess { - onProcessData: Event; + onProcessData: Event; onProcessExit: Event; onProcessReady: Event<{ pid: number, cwd: string }>; onProcessTitleChanged: Event; @@ -507,6 +515,13 @@ export interface ITerminalChildProcess { input(data: string): void; resize(cols: number, rows: number): void; + /** + * Acknowledge a data event has been parsed by the terminal, this is used to implement flow + * control to ensure remote processes to not get too far ahead of the client and flood the + * connection. + */ + acknowledgeDataEvent(ackId: number): void; + getInitialCwd(): Promise; getCwd(): Promise; getLatency(): Promise; diff --git a/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts b/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts index db8c7f57d9b..92a3edfa52b 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts @@ -5,17 +5,17 @@ import { Event } from 'vs/base/common/event'; import { IDisposable } from 'vs/base/common/lifecycle'; -import { IProcessDataEvent } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IProcessDataEvent, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; interface TerminalDataBuffer extends IDisposable { - data: string[]; + data: (string | IProcessDataWithAckEvent)[]; timeoutId: any; } export class TerminalDataBufferer implements IDisposable { private readonly _terminalBufferMap = new Map(); - constructor(private readonly _callback: (id: number, data: string) => void) { + constructor(private readonly _callback: (id: number, data: string | IProcessDataWithAckEvent) => void) { } dispose() { @@ -24,10 +24,10 @@ export class TerminalDataBufferer implements IDisposable { } } - startBuffering(id: number, event: Event, throttleBy: number = 5): IDisposable { + startBuffering(id: number, event: Event, throttleBy: number = 5): IDisposable { let disposable: IDisposable; - disposable = event((e: string | IProcessDataEvent) => { - const data = (typeof e === 'string' ? e : e.data); + disposable = event((e: string | IProcessDataEvent | IProcessDataWithAckEvent) => { + const data = (typeof e === 'string' || 'ackId' in e ? e : e.data); let buffer = this._terminalBufferMap.get(id); if (buffer) { buffer.data.push(data); @@ -61,7 +61,11 @@ export class TerminalDataBufferer implements IDisposable { const buffer = this._terminalBufferMap.get(id); if (buffer) { this._terminalBufferMap.delete(id); - this._callback(id, buffer.data.join('')); + // TODO: This should batch string events together still + // this._callback(id, buffer.data.join('')); + for (let b of buffer.data) { + this._callback(id, b); + } } } } diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index e0abbb31873..a88b2bf6198 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -11,7 +11,7 @@ import * as os from 'os'; import { Event, Emitter } from 'vs/base/common/event'; import { getWindowsBuildNumber } from 'vs/workbench/contrib/terminal/node/terminal'; import { Disposable } from 'vs/base/common/lifecycle'; -import { IShellLaunchConfig, ITerminalChildProcess, ITerminalLaunchError } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IProcessDataWithAckEvent, IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError } from 'vs/workbench/contrib/terminal/common/terminal'; import { exec } from 'child_process'; import { ILogService } from 'vs/platform/log/common/log'; import { stat } from 'vs/base/node/pfs'; @@ -38,13 +38,15 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess private _writeQueue: string[] = []; private _writeTimeout: NodeJS.Timeout | undefined; private _delayedResizer: DelayedResizer | undefined; + private _currentAckRequestId: number = 0; + private _ackedRequestId: number = 0; private readonly _initialCwd: string; private readonly _ptyOptions: pty.IPtyForkOptions | pty.IWindowsPtyForkOptions; public get exitMessage(): string | undefined { return this._exitMessage; } - private readonly _onProcessData = this._register(new Emitter()); - public get onProcessData(): Event { return this._onProcessData.event; } + private readonly _onProcessData = this._register(new Emitter()); + public get onProcessData(): Event { return this._onProcessData.event; } private readonly _onProcessExit = this._register(new Emitter()); public get onProcessExit(): Event { return this._onProcessExit.event; } private readonly _onProcessReady = this._register(new Emitter<{ pid: number, cwd: string }>()); @@ -98,6 +100,8 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess })); } } + onProcessOverrideDimensions?: Event | undefined; + onProcessResolvedShellLaunchConfig?: Event | undefined; public async start(): Promise { const results = await Promise.all([this._validateCwd(), this._validateExecutable()]); @@ -162,7 +166,15 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess this.onProcessReady(() => c()); }); ptyProcess.onData(data => { - this._onProcessData.fire(data); + // TODO: Periodically request ACK between low and high watermark + this._onProcessData.fire({ + data, + ackId: ++this._currentAckRequestId + }); + if (this._currentAckRequestId > this._ackedRequestId) { + // TODO: Expose as public API in node-pty + (ptyProcess as any).pause(); + } if (this._closeTimeout) { clearTimeout(this._closeTimeout); this._queueProcessExit(); @@ -324,6 +336,14 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess } } + public acknowledgeDataEvent(ackId: number): void { + this._ackedRequestId = ackId; + if (this._currentAckRequestId === this._ackedRequestId) { + // TODO: Expose as public API in node-pty + (this._ptyProcess as any).resume(); + } + } + public getInitialCwd(): Promise { return Promise.resolve(this._initialCwd); } diff --git a/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts b/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts index 6a2e3b93b21..9da073d3507 100644 --- a/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts +++ b/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts @@ -5,6 +5,7 @@ import * as assert from 'assert'; import { Emitter } from 'vs/base/common/event'; +import { IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; import { TerminalDataBufferer } from 'vs/workbench/contrib/terminal/common/terminalDataBuffering'; const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); @@ -12,7 +13,8 @@ const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); suite('Workbench - TerminalDataBufferer', () => { let bufferer: TerminalDataBufferer; let counter: { [id: number]: number }; - let data: { [id: number]: string }; + // TODO: Fix these tests + let data: { [id: number]: string | IProcessDataWithAckEvent }; setup(async () => { counter = {}; From f1ee68fc4681443d2c3e4be8b875203dc1b13e49 Mon Sep 17 00:00:00 2001 From: gjsjohnmurray Date: Tue, 12 Jan 2021 17:55:51 +0000 Subject: [PATCH 004/171] add tests for RELATIVE_FILEPATH snippet variable --- .../snippet/test/snippetVariables.test.ts | 52 +++++++++++++++++++ 1 file changed, 52 insertions(+) diff --git a/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts b/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts index 3717b9aa9ac..916897ef64a 100644 --- a/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts +++ b/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts @@ -15,6 +15,13 @@ import { mock } from 'vs/base/test/common/mock'; import { createTextModel } from 'vs/editor/test/common/editorTestUtils'; import { Workspace } from 'vs/platform/workspace/test/common/testWorkspace'; import { extUriBiasedIgnorePathCase } from 'vs/base/common/resources'; +// eslint-disable-next-line code-import-patterns +import { LabelService } from 'vs/workbench/services/label/common/labelService'; +// eslint-disable-next-line code-import-patterns +import { TestEnvironmentService, TestPathService } from 'vs/workbench/test/browser/workbenchTestServices'; +// eslint-disable-next-line code-import-patterns +import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; +import { sep } from 'vs/base/common/path'; suite('Snippet Variables Resolver', function () { @@ -339,4 +346,49 @@ suite('Snippet Variables Resolver', function () { assertVariableResolve(resolver, 'WORKSPACE_FOLDER', '/'); } }); + + test('Add RELATIVE_FILEPATH snippet variable #114208', function () { + + let resolver: VariableResolver; + + const workspaceLabelService = ((path: string): LabelService => { + const workspace = new Workspace(path, [toWorkspaceFolder(URI.file(path))]); + const labelService = new LabelService(TestEnvironmentService, new TestContextService(workspace), new TestPathService()); + labelService.registerFormatter({ + scheme: 'file', + formatting: { + label: '${path}', + separator: sep, + tildify: !isWindows, + normalizeDriveLetter: isWindows + } + }); + return labelService; + }); + + const model = createTextModel('', undefined, undefined, URI.parse('file:///foo/files/text.txt')); + + // empty workspace + resolver = new ModelBasedVariableResolver( + workspaceLabelService(''), + model + ); + + if (!isWindows) { + assertVariableResolve(resolver, 'RELATIVE_FILEPATH', '/foo/files/text.txt'); + } else { + assertVariableResolve(resolver, 'RELATIVE_FILEPATH', '\\foo\\files\\text.txt'); + } + + // single folder workspace + resolver = new ModelBasedVariableResolver( + workspaceLabelService('/foo'), + model + ); + if (!isWindows) { + assertVariableResolve(resolver, 'RELATIVE_FILEPATH', 'files/text.txt'); + } else { + assertVariableResolve(resolver, 'RELATIVE_FILEPATH', 'files\\text.txt'); + } + }); }); From 7e5c01208ddda07381bc507408b804065d81bf39 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 12 Jan 2021 10:42:26 -0800 Subject: [PATCH 005/171] Start of low-high watermark flow control --- .../contrib/terminal/node/terminalProcess.ts | 37 +++++++++++++++---- 1 file changed, 30 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index a88b2bf6198..ecc2d0a7e49 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -26,6 +26,24 @@ import { localize } from 'vs/nls'; const WRITE_MAX_CHUNK_SIZE = 50; const WRITE_INTERVAL_MS = 5; +const enum FlowControl { + /** + * The number of _unacknowledged_ bytes to have been sent before the pty is paused in order for + * the client to catch up. + */ + HighWatermarkBytes = 100000, + /** + * After flow control pauses the pty for the client the catch up, this is the number of + * _unacknowledged_ bytes to have been caught up to on the client before resuming the pty again. + * This is used to attempt to prevent pauses in the flowing data; ideally while the pty is + * paused the number of unacknowledged bytes would always be greater than 0 or the client will + * appear to stutter. In reality this balance is hard to accomplish though so heavy commands + * will likely pause as latency grows, not flooding the connection is the important thing as + * it's shared with other core functionality. + */ + LowWatermarkBytes = 10000 +} + export class TerminalProcess extends Disposable implements ITerminalChildProcess { private _exitCode: number | undefined; private _exitMessage: string | undefined; @@ -167,12 +185,17 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess }); ptyProcess.onData(data => { // TODO: Periodically request ACK between low and high watermark - this._onProcessData.fire({ - data, - ackId: ++this._currentAckRequestId - }); - if (this._currentAckRequestId > this._ackedRequestId) { + const fakeLatency = 1000; + this._currentAckRequestId += data.length; + const ackId = data.length; + setTimeout(() => { + this._onProcessData.fire({ data, ackId }); + }, fakeLatency); + // TODO: Use bytes, not messages + // console.log('check', this._currentAckRequestId - this._ackedRequestId, FlowControl.HighWatermarkBytes); + if (this._currentAckRequestId - this._ackedRequestId > FlowControl.HighWatermarkBytes) { // TODO: Expose as public API in node-pty + // console.log('pause', this._currentAckRequestId - this._ackedRequestId, '>', FlowControl.HighWatermarkBytes); (ptyProcess as any).pause(); } if (this._closeTimeout) { @@ -337,8 +360,8 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess } public acknowledgeDataEvent(ackId: number): void { - this._ackedRequestId = ackId; - if (this._currentAckRequestId === this._ackedRequestId) { + this._ackedRequestId += ackId; + if (this._currentAckRequestId - this._ackedRequestId < FlowControl.LowWatermarkBytes) { // TODO: Expose as public API in node-pty (this._ptyProcess as any).resume(); } From 7aee462b8a30802fb0f7083c0264dfa35da28311 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 12 Jan 2021 11:23:10 -0800 Subject: [PATCH 006/171] Use char count instead of ack ids --- .../terminal/browser/terminalInstance.ts | 3 ++- .../contrib/terminal/node/terminalProcess.ts | 26 ++++++++++--------- 2 files changed, 16 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 448e4d7cba3..0eac513627b 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1023,7 +1023,8 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { this._xterm?.write(ev.data, () => { this._latestXtermParseData = messageId; if (ev.dataAckId !== undefined) { - this._processManager.acknowledgeDataEvent(ev.dataAckId); + // TODO: Send back the length of data instead + this._processManager.acknowledgeDataEvent(ev.data.length); } }); } diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index ecc2d0a7e49..5d52c2d506b 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -28,20 +28,20 @@ const WRITE_INTERVAL_MS = 5; const enum FlowControl { /** - * The number of _unacknowledged_ bytes to have been sent before the pty is paused in order for + * The number of _unacknowledged_ chars to have been sent before the pty is paused in order for * the client to catch up. */ - HighWatermarkBytes = 100000, + HighWatermarkChars = 100000, /** * After flow control pauses the pty for the client the catch up, this is the number of - * _unacknowledged_ bytes to have been caught up to on the client before resuming the pty again. + * _unacknowledged_ chars to have been caught up to on the client before resuming the pty again. * This is used to attempt to prevent pauses in the flowing data; ideally while the pty is - * paused the number of unacknowledged bytes would always be greater than 0 or the client will + * paused the number of unacknowledged chars would always be greater than 0 or the client will * appear to stutter. In reality this balance is hard to accomplish though so heavy commands * will likely pause as latency grows, not flooding the connection is the important thing as * it's shared with other core functionality. */ - LowWatermarkBytes = 10000 + LowWatermarkChars = 5000 } export class TerminalProcess extends Disposable implements ITerminalChildProcess { @@ -56,8 +56,8 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess private _writeQueue: string[] = []; private _writeTimeout: NodeJS.Timeout | undefined; private _delayedResizer: DelayedResizer | undefined; - private _currentAckRequestId: number = 0; - private _ackedRequestId: number = 0; + private _totalDataCharCount: number = 0; + private _acknowledgedDataCharCount: number = 0; private readonly _initialCwd: string; private readonly _ptyOptions: pty.IPtyForkOptions | pty.IWindowsPtyForkOptions; @@ -186,16 +186,18 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess ptyProcess.onData(data => { // TODO: Periodically request ACK between low and high watermark const fakeLatency = 1000; - this._currentAckRequestId += data.length; + // TODO: if we're just sending the data length over, ackId doesn't need to exist at all + // TODO: We don't need to ack everything, just count on the other side and ack every 1000/10000 bytes + this._totalDataCharCount += data.length; const ackId = data.length; setTimeout(() => { this._onProcessData.fire({ data, ackId }); }, fakeLatency); // TODO: Use bytes, not messages // console.log('check', this._currentAckRequestId - this._ackedRequestId, FlowControl.HighWatermarkBytes); - if (this._currentAckRequestId - this._ackedRequestId > FlowControl.HighWatermarkBytes) { + if (this._totalDataCharCount - this._acknowledgedDataCharCount > FlowControl.HighWatermarkChars) { // TODO: Expose as public API in node-pty - // console.log('pause', this._currentAckRequestId - this._ackedRequestId, '>', FlowControl.HighWatermarkBytes); + console.log('pause', this._totalDataCharCount - this._acknowledgedDataCharCount, '>', FlowControl.HighWatermarkChars); (ptyProcess as any).pause(); } if (this._closeTimeout) { @@ -360,8 +362,8 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess } public acknowledgeDataEvent(ackId: number): void { - this._ackedRequestId += ackId; - if (this._currentAckRequestId - this._ackedRequestId < FlowControl.LowWatermarkBytes) { + this._acknowledgedDataCharCount += ackId; + if (this._totalDataCharCount - this._acknowledgedDataCharCount < FlowControl.LowWatermarkChars) { // TODO: Expose as public API in node-pty (this._ptyProcess as any).resume(); } From bf52d50a0a356a6c3200c566da9132874db46683 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 12 Jan 2021 11:27:41 -0800 Subject: [PATCH 007/171] Remove ackId from data events going to client --- .../api/browser/mainThreadTerminalService.ts | 9 ++++----- .../workbench/api/common/extHost.protocol.ts | 4 ++-- .../terminal/browser/terminalInstance.ts | 6 ++---- .../browser/terminalProcessExtHostProxy.ts | 8 ++++---- .../terminal/browser/terminalProcessManager.ts | 5 ++--- .../contrib/terminal/common/terminal.ts | 11 +++-------- .../terminal/common/terminalDataBuffering.ts | 18 +++++++----------- .../contrib/terminal/node/terminalProcess.ts | 9 ++++----- .../test/common/terminalDataBuffering.test.ts | 4 +--- 9 files changed, 29 insertions(+), 45 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadTerminalService.ts b/src/vs/workbench/api/browser/mainThreadTerminalService.ts index f9dda5e5474..4c9ab2d4e06 100644 --- a/src/vs/workbench/api/browser/mainThreadTerminalService.ts +++ b/src/vs/workbench/api/browser/mainThreadTerminalService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { DisposableStore, Disposable, IDisposable } from 'vs/base/common/lifecycle'; -import { IShellLaunchConfig, ITerminalProcessExtHostProxy, ISpawnExtHostProcessRequest, ITerminalDimensions, IAvailableShellsRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IShellLaunchConfig, ITerminalProcessExtHostProxy, ISpawnExtHostProcessRequest, ITerminalDimensions, IAvailableShellsRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest } from 'vs/workbench/contrib/terminal/common/terminal'; import { ExtHostContext, ExtHostTerminalServiceShape, MainThreadTerminalServiceShape, MainContext, IExtHostContext, IShellLaunchConfigDto, TerminalLaunchConfig, ITerminalDimensionsDto, TerminalIdentifier } from 'vs/workbench/api/common/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { URI } from 'vs/base/common/uri'; @@ -168,8 +168,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape public $startSendingDataEvents(): void { if (!this._dataEventTracker) { this._dataEventTracker = this._instantiationService.createInstance(TerminalDataEventTracker, (id, data) => { - const d = typeof data === 'string' ? data : data.data; - this._onTerminalData(id, d); + this._onTerminalData(id, data); }); // Send initial events if they exist this._terminalService.terminalInstances.forEach(t => { @@ -312,7 +311,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape } } - public $sendProcessData(terminalId: number, data: string | IProcessDataWithAckEvent): void { + public $sendProcessData(terminalId: number, data: string): void { const terminalProcess = this._terminalProcessProxies.get(terminalId); if (terminalProcess) { terminalProcess.emitData(data); @@ -425,7 +424,7 @@ class TerminalDataEventTracker extends Disposable { private readonly _bufferer: TerminalDataBufferer; constructor( - private readonly _callback: (id: number, data: string | IProcessDataWithAckEvent) => void, + private readonly _callback: (id: number, data: string) => void, @ITerminalService private readonly _terminalService: ITerminalService ) { super(); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 819a27528fb..e151a129653 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -41,7 +41,7 @@ import * as tasks from 'vs/workbench/api/common/shared/tasks'; import { IRevealOptions, ITreeItem } from 'vs/workbench/common/views'; import { IAdapterDescriptor, IConfig, IDebugSessionReplMode } from 'vs/workbench/contrib/debug/common/debug'; import { ITextQueryBuilderOptions } from 'vs/workbench/contrib/search/common/queryBuilder'; -import { ITerminalDimensions, IShellLaunchConfig, ITerminalLaunchError, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; +import { ITerminalDimensions, IShellLaunchConfig, ITerminalLaunchError } from 'vs/workbench/contrib/terminal/common/terminal'; import { ActivationKind, ExtensionActivationError, ExtensionHostKind } from 'vs/workbench/services/extensions/common/extensions'; import { createExtHostContextProxyIdentifier as createExtId, createMainContextProxyIdentifier as createMainId, IRPCProtocol } from 'vs/workbench/services/extensions/common/proxyIdentifier'; import * as search from 'vs/workbench/services/search/common/search'; @@ -480,7 +480,7 @@ export interface MainThreadTerminalServiceShape extends IDisposable { // Process $sendProcessTitle(terminalId: number, title: string): void; - $sendProcessData(terminalId: number, data: string | IProcessDataWithAckEvent): void; + $sendProcessData(terminalId: number, data: string): void; $sendProcessReady(terminalId: number, pid: number, cwd: string): void; $sendProcessExit(terminalId: number, exitCode: number | undefined): void; $sendProcessInitialCwd(terminalId: number, cwd: string): void; diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 0eac513627b..780da6473b8 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1022,10 +1022,8 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { const messageId = ++this._latestXtermWriteData; this._xterm?.write(ev.data, () => { this._latestXtermParseData = messageId; - if (ev.dataAckId !== undefined) { - // TODO: Send back the length of data instead - this._processManager.acknowledgeDataEvent(ev.data.length); - } + // TODO: Disable for local processes? + this._processManager.acknowledgeDataEvent(ev.data.length); }); } } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts index 9a713b7f16a..40895f7e432 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { Event, Emitter } from 'vs/base/common/event'; -import { ITerminalProcessExtHostProxy, IShellLaunchConfig, ITerminalChildProcess, ITerminalConfigHelper, ITerminalDimensions, ITerminalLaunchError, ITerminalDimensionsOverride, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; +import { ITerminalProcessExtHostProxy, IShellLaunchConfig, ITerminalChildProcess, ITerminalConfigHelper, ITerminalDimensions, ITerminalLaunchError, ITerminalDimensionsOverride } from 'vs/workbench/contrib/terminal/common/terminal'; import { Disposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; @@ -15,8 +15,8 @@ let hasReceivedResponseFromRemoteExtHost: boolean = false; export class TerminalProcessExtHostProxy extends Disposable implements ITerminalChildProcess, ITerminalProcessExtHostProxy { - private readonly _onProcessData = this._register(new Emitter()); - public readonly onProcessData: Event = this._onProcessData.event; + private readonly _onProcessData = this._register(new Emitter()); + public readonly onProcessData: Event = this._onProcessData.event; private readonly _onProcessExit = this._register(new Emitter()); public readonly onProcessExit: Event = this._onProcessExit.event; private readonly _onProcessReady = this._register(new Emitter<{ pid: number, cwd: string }>()); @@ -62,7 +62,7 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal super(); } - public emitData(data: string | IProcessDataWithAckEvent): void { + public emitData(data: string): void { this._onProcessData.fire(data); } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts index d4548a8ad2d..0368eef6b69 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts @@ -175,12 +175,11 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce this._process.onProcessData(ev => { const data = (typeof ev === 'string' ? ev : ev.data); - const sync = (typeof ev === 'string' || 'ackId' in ev ? false : ev.sync); - const dataAckId = (typeof ev !== 'string' && 'ackId' in ev ? ev.ackId : undefined); + const sync = (typeof ev === 'string' ? false : ev.sync); const beforeProcessDataEvent: IBeforeProcessDataEvent = { data }; this._onBeforeProcessData.fire(beforeProcessDataEvent); if (beforeProcessDataEvent.data && beforeProcessDataEvent.data.length > 0) { - this._onProcessData.fire({ data: beforeProcessDataEvent.data, sync, dataAckId }); + this._onProcessData.fire({ data: beforeProcessDataEvent.data, sync }); } }); diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index c45ce933b8b..b46c5367028 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -354,12 +354,6 @@ export interface IBeforeProcessDataEvent { export interface IProcessDataEvent { data: string; sync: boolean; - dataAckId?: number; -} - -export interface IProcessDataWithAckEvent { - data: string; - ackId: number; } export interface ITerminalProcessManager extends IDisposable { @@ -385,6 +379,7 @@ export interface ITerminalProcessManager extends IDisposable { createProcess(shellLaunchConfig: IShellLaunchConfig, cols: number, rows: number, isScreenReaderModeEnabled: boolean): Promise; write(data: string): void; setDimensions(cols: number, rows: number): void; + // TODO: Rename to charCount acknowledgeDataEvent(ackId: number): void; getInitialCwd(): Promise; @@ -414,7 +409,7 @@ export const enum ProcessState { export interface ITerminalProcessExtHostProxy extends IDisposable { readonly terminalId: number; - emitData(data: string | IProcessDataWithAckEvent): void; + emitData(data: string): void; emitTitle(title: string): void; emitReady(pid: number, cwd: string): void; emitExit(exitCode: number | undefined): void; @@ -490,7 +485,7 @@ export interface ITerminalLaunchError { * child_process.ChildProcess node.js interface. */ export interface ITerminalChildProcess { - onProcessData: Event; + onProcessData: Event; onProcessExit: Event; onProcessReady: Event<{ pid: number, cwd: string }>; onProcessTitleChanged: Event; diff --git a/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts b/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts index 92a3edfa52b..db8c7f57d9b 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalDataBuffering.ts @@ -5,17 +5,17 @@ import { Event } from 'vs/base/common/event'; import { IDisposable } from 'vs/base/common/lifecycle'; -import { IProcessDataEvent, IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IProcessDataEvent } from 'vs/workbench/contrib/terminal/common/terminal'; interface TerminalDataBuffer extends IDisposable { - data: (string | IProcessDataWithAckEvent)[]; + data: string[]; timeoutId: any; } export class TerminalDataBufferer implements IDisposable { private readonly _terminalBufferMap = new Map(); - constructor(private readonly _callback: (id: number, data: string | IProcessDataWithAckEvent) => void) { + constructor(private readonly _callback: (id: number, data: string) => void) { } dispose() { @@ -24,10 +24,10 @@ export class TerminalDataBufferer implements IDisposable { } } - startBuffering(id: number, event: Event, throttleBy: number = 5): IDisposable { + startBuffering(id: number, event: Event, throttleBy: number = 5): IDisposable { let disposable: IDisposable; - disposable = event((e: string | IProcessDataEvent | IProcessDataWithAckEvent) => { - const data = (typeof e === 'string' || 'ackId' in e ? e : e.data); + disposable = event((e: string | IProcessDataEvent) => { + const data = (typeof e === 'string' ? e : e.data); let buffer = this._terminalBufferMap.get(id); if (buffer) { buffer.data.push(data); @@ -61,11 +61,7 @@ export class TerminalDataBufferer implements IDisposable { const buffer = this._terminalBufferMap.get(id); if (buffer) { this._terminalBufferMap.delete(id); - // TODO: This should batch string events together still - // this._callback(id, buffer.data.join('')); - for (let b of buffer.data) { - this._callback(id, b); - } + this._callback(id, buffer.data.join('')); } } } diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index 5d52c2d506b..4eec770e6c8 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -11,7 +11,7 @@ import * as os from 'os'; import { Event, Emitter } from 'vs/base/common/event'; import { getWindowsBuildNumber } from 'vs/workbench/contrib/terminal/node/terminal'; import { Disposable } from 'vs/base/common/lifecycle'; -import { IProcessDataWithAckEvent, IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError } from 'vs/workbench/contrib/terminal/common/terminal'; import { exec } from 'child_process'; import { ILogService } from 'vs/platform/log/common/log'; import { stat } from 'vs/base/node/pfs'; @@ -63,8 +63,8 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess public get exitMessage(): string | undefined { return this._exitMessage; } - private readonly _onProcessData = this._register(new Emitter()); - public get onProcessData(): Event { return this._onProcessData.event; } + private readonly _onProcessData = this._register(new Emitter()); + public get onProcessData(): Event { return this._onProcessData.event; } private readonly _onProcessExit = this._register(new Emitter()); public get onProcessExit(): Event { return this._onProcessExit.event; } private readonly _onProcessReady = this._register(new Emitter<{ pid: number, cwd: string }>()); @@ -189,9 +189,8 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess // TODO: if we're just sending the data length over, ackId doesn't need to exist at all // TODO: We don't need to ack everything, just count on the other side and ack every 1000/10000 bytes this._totalDataCharCount += data.length; - const ackId = data.length; setTimeout(() => { - this._onProcessData.fire({ data, ackId }); + this._onProcessData.fire(data); }, fakeLatency); // TODO: Use bytes, not messages // console.log('check', this._currentAckRequestId - this._ackedRequestId, FlowControl.HighWatermarkBytes); diff --git a/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts b/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts index 9da073d3507..6a2e3b93b21 100644 --- a/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts +++ b/src/vs/workbench/contrib/terminal/test/common/terminalDataBuffering.test.ts @@ -5,7 +5,6 @@ import * as assert from 'assert'; import { Emitter } from 'vs/base/common/event'; -import { IProcessDataWithAckEvent } from 'vs/workbench/contrib/terminal/common/terminal'; import { TerminalDataBufferer } from 'vs/workbench/contrib/terminal/common/terminalDataBuffering'; const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); @@ -13,8 +12,7 @@ const wait = (ms: number) => new Promise(resolve => setTimeout(resolve, ms)); suite('Workbench - TerminalDataBufferer', () => { let bufferer: TerminalDataBufferer; let counter: { [id: number]: number }; - // TODO: Fix these tests - let data: { [id: number]: string | IProcessDataWithAckEvent }; + let data: { [id: number]: string }; setup(async () => { counter = {}; From 0a19f7702a9c9205cdab214860fa97e97dc7c4ea Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 12 Jan 2021 11:36:21 -0800 Subject: [PATCH 008/171] Rename ackId to charCount --- src/vs/workbench/api/browser/mainThreadTerminalService.ts | 2 +- src/vs/workbench/api/common/extHost.protocol.ts | 2 +- src/vs/workbench/api/common/extHostTerminalService.ts | 6 +++--- .../contrib/terminal/browser/remoteTerminalService.ts | 2 +- .../terminal/browser/terminalProcessExtHostProxy.ts | 4 ++-- .../contrib/terminal/browser/terminalProcessManager.ts | 5 +++-- src/vs/workbench/contrib/terminal/common/terminal.ts | 6 +++--- src/vs/workbench/contrib/terminal/node/terminalProcess.ts | 8 +++----- 8 files changed, 17 insertions(+), 18 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadTerminalService.ts b/src/vs/workbench/api/browser/mainThreadTerminalService.ts index 4c9ab2d4e06..1888982a193 100644 --- a/src/vs/workbench/api/browser/mainThreadTerminalService.ts +++ b/src/vs/workbench/api/browser/mainThreadTerminalService.ts @@ -272,7 +272,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape request.isWorkspaceShellAllowed ).then(request.callback, request.callback); - proxy.onAcknowledgeDataEvent(ackId => this._proxy.$acceptProcessAckDataEvent(proxy.terminalId, ackId)); + proxy.onAcknowledgeDataEvent(charCount => this._proxy.$acceptProcessAckDataEvent(proxy.terminalId, charCount)); proxy.onInput(data => this._proxy.$acceptProcessInput(proxy.terminalId, data)); proxy.onResize(dimensions => this._proxy.$acceptProcessResize(proxy.terminalId, dimensions.cols, dimensions.rows)); proxy.onShutdown(immediate => this._proxy.$acceptProcessShutdown(proxy.terminalId, immediate)); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index e151a129653..d3a5b973021 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -1545,7 +1545,7 @@ export interface ExtHostTerminalServiceShape { $acceptTerminalMaximumDimensions(id: number, cols: number, rows: number): void; $spawnExtHostProcess(id: number, shellLaunchConfig: IShellLaunchConfigDto, activeWorkspaceRootUri: UriComponents | undefined, cols: number, rows: number, isWorkspaceShellAllowed: boolean): Promise; $startExtensionTerminal(id: number, initialDimensions: ITerminalDimensionsDto | undefined): Promise; - $acceptProcessAckDataEvent(id: number, ackId: number): void; + $acceptProcessAckDataEvent(id: number, charCount: number): void; $acceptProcessInput(id: number, data: string): void; $acceptProcessResize(id: number, cols: number, rows: number): void; $acceptProcessShutdown(id: number, immediate: boolean): void; diff --git a/src/vs/workbench/api/common/extHostTerminalService.ts b/src/vs/workbench/api/common/extHostTerminalService.ts index 8d96e657b59..597b304f4fc 100644 --- a/src/vs/workbench/api/common/extHostTerminalService.ts +++ b/src/vs/workbench/api/common/extHostTerminalService.ts @@ -220,7 +220,7 @@ export class ExtHostPseudoterminal implements ITerminalChildProcess { } } - acknowledgeDataEvent(ackId: number): void { + acknowledgeDataEvent(charCount: number): void { // TODO: Determine whether ExtHostPseudoterminal terminals should support flow control, this // would need resume/pause APIs @@ -495,8 +495,8 @@ export abstract class BaseExtHostTerminalService extends Disposable implements I return disposables; } - public $acceptProcessAckDataEvent(id: number, ackId: number): void { - this._terminalProcesses.get(id)?.acknowledgeDataEvent(ackId); + public $acceptProcessAckDataEvent(id: number, charCount: number): void { + this._terminalProcesses.get(id)?.acknowledgeDataEvent(charCount); } public $acceptProcessInput(id: number, data: string): void { diff --git a/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts b/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts index c7be47e5214..872e9a36fbf 100644 --- a/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts @@ -252,7 +252,7 @@ export class RemoteTerminalProcess extends Disposable implements ITerminalChildP }); } - public acknowledgeDataEvent(ackId: number): void { + public acknowledgeDataEvent(charCount: number): void { // TODO: Support flow control for server spawned processes } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts index 40895f7e432..0be5cf88be5 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessExtHostProxy.ts @@ -141,8 +141,8 @@ export class TerminalProcessExtHostProxy extends Disposable implements ITerminal this._onResize.fire({ cols, rows }); } - public acknowledgeDataEvent(ackId: number): void { - this._onAcknowledgeDataEvent.fire(ackId); + public acknowledgeDataEvent(charCount: number): void { + this._onAcknowledgeDataEvent.fire(charCount); } public getInitialCwd(): Promise { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts index 0368eef6b69..bec1293ce6e 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts @@ -331,8 +331,9 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce return Promise.resolve(this._latency); } - public acknowledgeDataEvent(ackId: number): void { - this._process?.acknowledgeDataEvent(ackId); + public acknowledgeDataEvent(charCount: number): void { + // TODO: Batch these acknowledge calls (in proxy/remote connection?) + this._process?.acknowledgeDataEvent(charCount); } private _onExit(exitCode: number | undefined): void { diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index b46c5367028..076030c6b4d 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -379,8 +379,7 @@ export interface ITerminalProcessManager extends IDisposable { createProcess(shellLaunchConfig: IShellLaunchConfig, cols: number, rows: number, isScreenReaderModeEnabled: boolean): Promise; write(data: string): void; setDimensions(cols: number, rows: number): void; - // TODO: Rename to charCount - acknowledgeDataEvent(ackId: number): void; + acknowledgeDataEvent(charCount: number): void; getInitialCwd(): Promise; getCwd(): Promise; @@ -514,8 +513,9 @@ export interface ITerminalChildProcess { * Acknowledge a data event has been parsed by the terminal, this is used to implement flow * control to ensure remote processes to not get too far ahead of the client and flood the * connection. + * @param charCount The number of characters being acknowledged. */ - acknowledgeDataEvent(ackId: number): void; + acknowledgeDataEvent(charCount: number): void; getInitialCwd(): Promise; getCwd(): Promise; diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index 4eec770e6c8..fa2ba90fb6d 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -186,14 +186,11 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess ptyProcess.onData(data => { // TODO: Periodically request ACK between low and high watermark const fakeLatency = 1000; - // TODO: if we're just sending the data length over, ackId doesn't need to exist at all // TODO: We don't need to ack everything, just count on the other side and ack every 1000/10000 bytes this._totalDataCharCount += data.length; setTimeout(() => { this._onProcessData.fire(data); }, fakeLatency); - // TODO: Use bytes, not messages - // console.log('check', this._currentAckRequestId - this._ackedRequestId, FlowControl.HighWatermarkBytes); if (this._totalDataCharCount - this._acknowledgedDataCharCount > FlowControl.HighWatermarkChars) { // TODO: Expose as public API in node-pty console.log('pause', this._totalDataCharCount - this._acknowledgedDataCharCount, '>', FlowControl.HighWatermarkChars); @@ -360,9 +357,10 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess } } - public acknowledgeDataEvent(ackId: number): void { - this._acknowledgedDataCharCount += ackId; + public acknowledgeDataEvent(charCount: number): void { + this._acknowledgedDataCharCount += charCount; if (this._totalDataCharCount - this._acknowledgedDataCharCount < FlowControl.LowWatermarkChars) { + // TODO: Check whether it is paused before resuming // TODO: Expose as public API in node-pty (this._ptyProcess as any).resume(); } From 3232112f9baf143a38e129aa23502957e594c0d5 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 12 Jan 2021 12:08:58 -0800 Subject: [PATCH 009/171] Only resume if it's paused --- .../contrib/terminal/browser/terminalInstance.ts | 1 + .../contrib/terminal/node/terminalProcess.ts | 15 ++++++++------- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 780da6473b8..83f70c934b7 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1023,6 +1023,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { this._xterm?.write(ev.data, () => { this._latestXtermParseData = messageId; // TODO: Disable for local processes? + // TODO: We don't need to ack everything, just count on the other side and ack every 1000/10000 bytes this._processManager.acknowledgeDataEvent(ev.data.length); }); } diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index fa2ba90fb6d..55e2e0563d2 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -56,11 +56,13 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess private _writeQueue: string[] = []; private _writeTimeout: NodeJS.Timeout | undefined; private _delayedResizer: DelayedResizer | undefined; - private _totalDataCharCount: number = 0; - private _acknowledgedDataCharCount: number = 0; private readonly _initialCwd: string; private readonly _ptyOptions: pty.IPtyForkOptions | pty.IWindowsPtyForkOptions; + private _isPtyPaused: boolean = false; + private _totalDataCharCount: number = 0; + private _acknowledgedDataCharCount: number = 0; + public get exitMessage(): string | undefined { return this._exitMessage; } private readonly _onProcessData = this._register(new Emitter()); @@ -184,16 +186,15 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess this.onProcessReady(() => c()); }); ptyProcess.onData(data => { - // TODO: Periodically request ACK between low and high watermark const fakeLatency = 1000; - // TODO: We don't need to ack everything, just count on the other side and ack every 1000/10000 bytes this._totalDataCharCount += data.length; setTimeout(() => { this._onProcessData.fire(data); }, fakeLatency); - if (this._totalDataCharCount - this._acknowledgedDataCharCount > FlowControl.HighWatermarkChars) { + if (!this._isPtyPaused && this._totalDataCharCount - this._acknowledgedDataCharCount > FlowControl.HighWatermarkChars) { // TODO: Expose as public API in node-pty console.log('pause', this._totalDataCharCount - this._acknowledgedDataCharCount, '>', FlowControl.HighWatermarkChars); + this._isPtyPaused = true; (ptyProcess as any).pause(); } if (this._closeTimeout) { @@ -359,10 +360,10 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess public acknowledgeDataEvent(charCount: number): void { this._acknowledgedDataCharCount += charCount; - if (this._totalDataCharCount - this._acknowledgedDataCharCount < FlowControl.LowWatermarkChars) { - // TODO: Check whether it is paused before resuming + if (this._isPtyPaused && this._totalDataCharCount - this._acknowledgedDataCharCount < FlowControl.LowWatermarkChars) { // TODO: Expose as public API in node-pty (this._ptyProcess as any).resume(); + this._isPtyPaused = false; } } From 22c88cfaaebcc796589840d3a1f21b0d3a9c42d9 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Tue, 12 Jan 2021 12:29:12 -0800 Subject: [PATCH 010/171] Batch ack events coming from client --- .../api/common/extHostTerminalService.ts | 6 +-- .../browser/terminalProcessManager.ts | 24 ++++++++++-- .../contrib/terminal/common/terminal.ts | 23 +++++++++++ .../contrib/terminal/node/terminalProcess.ts | 38 ++++++------------- 4 files changed, 57 insertions(+), 34 deletions(-) diff --git a/src/vs/workbench/api/common/extHostTerminalService.ts b/src/vs/workbench/api/common/extHostTerminalService.ts index 597b304f4fc..5f6034363c2 100644 --- a/src/vs/workbench/api/common/extHostTerminalService.ts +++ b/src/vs/workbench/api/common/extHostTerminalService.ts @@ -221,10 +221,8 @@ export class ExtHostPseudoterminal implements ITerminalChildProcess { } acknowledgeDataEvent(charCount: number): void { - // TODO: Determine whether ExtHostPseudoterminal terminals should support flow control, this - // would need resume/pause APIs - - // No-op + // No-op, flow control is not supported in extension owned terminals. If this is ever + // implemented it will need new pause and resume VS Code APIs. } getInitialCwd(): Promise { diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts index bec1293ce6e..b783fec1988 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts @@ -6,7 +6,7 @@ import * as platform from 'vs/base/common/platform'; import * as terminalEnvironment from 'vs/workbench/contrib/terminal/common/terminalEnvironment'; import { env as processEnv } from 'vs/base/common/process'; -import { ProcessState, ITerminalProcessManager, IShellLaunchConfig, ITerminalConfigHelper, ITerminalChildProcess, IBeforeProcessDataEvent, ITerminalEnvironment, ITerminalLaunchError, IProcessDataEvent, ITerminalDimensionsOverride } from 'vs/workbench/contrib/terminal/common/terminal'; +import { ProcessState, ITerminalProcessManager, IShellLaunchConfig, ITerminalConfigHelper, ITerminalChildProcess, IBeforeProcessDataEvent, ITerminalEnvironment, ITerminalLaunchError, IProcessDataEvent, ITerminalDimensionsOverride, FlowControlConstants } from 'vs/workbench/contrib/terminal/common/terminal'; import { ILogService } from 'vs/platform/log/common/log'; import { Emitter, Event } from 'vs/base/common/event'; import { IHistoryService } from 'vs/workbench/services/history/common/history'; @@ -64,6 +64,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce private _initialCwd: string | undefined; private _extEnvironmentVariableCollection: IMergedEnvironmentVariableCollection | undefined; private _environmentVariableInfo: IEnvironmentVariableInfo | undefined; + private _ackDataBufferer: AckDataBufferer; private readonly _onProcessReady = this._register(new Emitter()); public get onProcessReady(): Event { return this._onProcessReady.event; } @@ -111,6 +112,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce }); }); this.ptyProcessReady.then(async () => await this.getLatency()); + this._ackDataBufferer = new AckDataBufferer(e => this._process?.acknowledgeDataEvent(e)); } public dispose(immediate: boolean = false): void { @@ -332,8 +334,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce } public acknowledgeDataEvent(charCount: number): void { - // TODO: Batch these acknowledge calls (in proxy/remote connection?) - this._process?.acknowledgeDataEvent(charCount); + this._ackDataBufferer.ack(charCount); } private _onExit(exitCode: number | undefined): void { @@ -364,3 +365,20 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce this._onEnvironmentVariableInfoChange.fire(this._environmentVariableInfo); } } + +class AckDataBufferer { + private _unsentCharCount: number = 0; + + constructor( + private readonly _callback: (charCount: number) => void + ) { + } + + ack(charCount: number) { + this._unsentCharCount += charCount; + while (this._unsentCharCount > FlowControlConstants.CharCountAckSize) { + this._unsentCharCount -= FlowControlConstants.CharCountAckSize; + this._callback(FlowControlConstants.CharCountAckSize); + } + } +} diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index 076030c6b4d..78f4ef2a552 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -522,6 +522,29 @@ export interface ITerminalChildProcess { getLatency(): Promise; } +export const enum FlowControlConstants { + /** + * The number of _unacknowledged_ chars to have been sent before the pty is paused in order for + * the client to catch up. + */ + HighWatermarkChars = 100000, + /** + * After flow control pauses the pty for the client the catch up, this is the number of + * _unacknowledged_ chars to have been caught up to on the client before resuming the pty again. + * This is used to attempt to prevent pauses in the flowing data; ideally while the pty is + * paused the number of unacknowledged chars would always be greater than 0 or the client will + * appear to stutter. In reality this balance is hard to accomplish though so heavy commands + * will likely pause as latency grows, not flooding the connection is the important thing as + * it's shared with other core functionality. + */ + LowWatermarkChars = 5000, + /** + * The number characters that are accumulated on the client side before sending an ack event. + * This must be less than or equal to LowWatermarkChars or the terminal max never unpause. + */ + CharCountAckSize = 5000 +} + export const enum TERMINAL_COMMAND_ID { FIND_NEXT = 'workbench.action.terminal.findNext', FIND_PREVIOUS = 'workbench.action.terminal.findPrevious', diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index 55e2e0563d2..26c3c1f429e 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -11,7 +11,7 @@ import * as os from 'os'; import { Event, Emitter } from 'vs/base/common/event'; import { getWindowsBuildNumber } from 'vs/workbench/contrib/terminal/node/terminal'; import { Disposable } from 'vs/base/common/lifecycle'; -import { IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IShellLaunchConfig, ITerminalChildProcess, ITerminalDimensionsOverride, ITerminalLaunchError, FlowControlConstants } from 'vs/workbench/contrib/terminal/common/terminal'; import { exec } from 'child_process'; import { ILogService } from 'vs/platform/log/common/log'; import { stat } from 'vs/base/node/pfs'; @@ -26,24 +26,6 @@ import { localize } from 'vs/nls'; const WRITE_MAX_CHUNK_SIZE = 50; const WRITE_INTERVAL_MS = 5; -const enum FlowControl { - /** - * The number of _unacknowledged_ chars to have been sent before the pty is paused in order for - * the client to catch up. - */ - HighWatermarkChars = 100000, - /** - * After flow control pauses the pty for the client the catch up, this is the number of - * _unacknowledged_ chars to have been caught up to on the client before resuming the pty again. - * This is used to attempt to prevent pauses in the flowing data; ideally while the pty is - * paused the number of unacknowledged chars would always be greater than 0 or the client will - * appear to stutter. In reality this balance is hard to accomplish though so heavy commands - * will likely pause as latency grows, not flooding the connection is the important thing as - * it's shared with other core functionality. - */ - LowWatermarkChars = 5000 -} - export class TerminalProcess extends Disposable implements ITerminalChildProcess { private _exitCode: number | undefined; private _exitMessage: string | undefined; @@ -60,8 +42,7 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess private readonly _ptyOptions: pty.IPtyForkOptions | pty.IWindowsPtyForkOptions; private _isPtyPaused: boolean = false; - private _totalDataCharCount: number = 0; - private _acknowledgedDataCharCount: number = 0; + private _unacknowledgedCharCount: number = 0; public get exitMessage(): string | undefined { return this._exitMessage; } @@ -187,14 +168,14 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess }); ptyProcess.onData(data => { const fakeLatency = 1000; - this._totalDataCharCount += data.length; + this._unacknowledgedCharCount += data.length; setTimeout(() => { this._onProcessData.fire(data); }, fakeLatency); - if (!this._isPtyPaused && this._totalDataCharCount - this._acknowledgedDataCharCount > FlowControl.HighWatermarkChars) { - // TODO: Expose as public API in node-pty - console.log('pause', this._totalDataCharCount - this._acknowledgedDataCharCount, '>', FlowControl.HighWatermarkChars); + if (!this._isPtyPaused && this._unacknowledgedCharCount > FlowControlConstants.HighWatermarkChars) { + console.log(`pause (${this._unacknowledgedCharCount} > ${FlowControlConstants.HighWatermarkChars}`); this._isPtyPaused = true; + // TODO: Expose as public API in node-pty (ptyProcess as any).pause(); } if (this._closeTimeout) { @@ -359,8 +340,11 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess } public acknowledgeDataEvent(charCount: number): void { - this._acknowledgedDataCharCount += charCount; - if (this._isPtyPaused && this._totalDataCharCount - this._acknowledgedDataCharCount < FlowControl.LowWatermarkChars) { + // Prevent lower than 0 to heal from errors + this._unacknowledgedCharCount = Math.max(this._unacknowledgedCharCount - charCount, 0); + console.log(`Ack ${charCount} chars (unacknowledged: ${this._unacknowledgedCharCount})`); + if (this._isPtyPaused && this._unacknowledgedCharCount < FlowControlConstants.LowWatermarkChars) { + console.log(`Resume (${this._unacknowledgedCharCount} < ${FlowControlConstants.LowWatermarkChars})`); // TODO: Expose as public API in node-pty (this._ptyProcess as any).resume(); this._isPtyPaused = false; From 675e5da76b103c64a94ed7a60bbe80ed44eb1a83 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 09:17:57 +0100 Subject: [PATCH 011/171] shared process - expose methods for message channel API --- .../parts/sandbox/common/electronTypes.ts | 8 +- .../parts/sandbox/electron-browser/preload.js | 11 +++ .../sandbox/electron-sandbox/electronTypes.ts | 96 ++++++++++++++++--- 3 files changed, 96 insertions(+), 19 deletions(-) diff --git a/src/vs/base/parts/sandbox/common/electronTypes.ts b/src/vs/base/parts/sandbox/common/electronTypes.ts index cff3caccfaf..5c36ba59553 100644 --- a/src/vs/base/parts/sandbox/common/electronTypes.ts +++ b/src/vs/base/parts/sandbox/common/electronTypes.ts @@ -7,7 +7,7 @@ // ####################################################################### // ### ### // ### electron.d.ts types we need in a common layer for reuse ### -// ### (copied from Electron 9.x) ### +// ### (copied from Electron 11.x) ### // ### ### // ####################################################################### @@ -212,7 +212,7 @@ export interface SaveDialogReturnValue { export interface FileFilter { - // Docs: http://electronjs.org/docs/api/structures/file-filter + // Docs: https://electronjs.org/docs/api/structures/file-filter extensions: string[]; name: string; @@ -220,7 +220,7 @@ export interface FileFilter { export interface InputEvent { - // Docs: http://electronjs.org/docs/api/structures/input-event + // Docs: https://electronjs.org/docs/api/structures/input-event /** * An array of modifiers of the event, can be `shift`, `control`, `ctrl`, `alt`, @@ -232,7 +232,7 @@ export interface InputEvent { export interface MouseInputEvent extends InputEvent { - // Docs: http://electronjs.org/docs/api/structures/mouse-input-event + // Docs: https://electronjs.org/docs/api/structures/mouse-input-event /** * The button pressed, can be `left`, `middle`, `right`. diff --git a/src/vs/base/parts/sandbox/electron-browser/preload.js b/src/vs/base/parts/sandbox/electron-browser/preload.js index a1aa638f825..a56dc129c85 100644 --- a/src/vs/base/parts/sandbox/electron-browser/preload.js +++ b/src/vs/base/parts/sandbox/electron-browser/preload.js @@ -35,6 +35,17 @@ } }, + /** + * @param {string} channel + * @param {any} message + * @param {MessagePort[]} transfer + */ + postMessage(channel, message, transfer) { + if (validateIPC(channel)) { + ipcRenderer.postMessage(channel, message, transfer); + } + }, + /** * @param {string} channel * @param {any[]} args diff --git a/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts b/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts index ef8fd5642ea..1adb322d1ba 100644 --- a/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts +++ b/src/vs/base/parts/sandbox/electron-sandbox/electronTypes.ts @@ -7,35 +7,54 @@ // ####################################################################### // ### ### // ### electron.d.ts types we expose from electron-sandbox ### -// ### (copied from Electron 9.x) ### +// ### (copied from Electron 11.x) ### // ### ### // ####################################################################### +export interface IpcRendererEvent extends Event { + + // Docs: https://electronjs.org/docs/api/structures/ipc-renderer-event + + /** + * A list of MessagePorts that were transferred with this message + */ + ports: MessagePort[]; + /** + * The `IpcRenderer` instance that emitted the event originally + */ + sender: IpcRenderer; + /** + * The `webContents.id` that sent the message, you can call + * `event.sender.sendTo(event.senderId, ...)` to reply to the message, see + * ipcRenderer.sendTo for more information. This only applies to messages sent from + * a different renderer. Messages sent directly from the main process set + * `event.senderId` to `0`. + */ + senderId: number; +} export interface IpcRenderer { /** * Listens to `channel`, when a new message arrives `listener` would be called with * `listener(event, args...)`. */ - on(channel: string, listener: (event: unknown, ...args: any[]) => void): void; - + on(channel: string, listener: (event: IpcRendererEvent, ...args: any[]) => void): this; /** * Adds a one time `listener` function for the event. This `listener` is invoked * only the next time a message is sent to `channel`, after which it is removed. */ - once(channel: string, listener: (event: unknown, ...args: any[]) => void): void; - + once(channel: string, listener: (event: IpcRendererEvent, ...args: any[]) => void): this; /** * Removes the specified `listener` from the listener array for the specified * `channel`. */ - removeListener(channel: string, listener: (event: unknown, ...args: any[]) => void): void; - + removeListener(channel: string, listener: (...args: any[]) => void): this; /** * Send an asynchronous message to the main process via `channel`, along with * arguments. Arguments will be serialized with the Structured Clone Algorithm, - * just like `postMessage`, so prototype chains will not be included. Sending - * Functions, Promises, Symbols, WeakMaps, or WeakSets will throw an exception. + * just like `window.postMessage`, so prototype chains will not be included. + * Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw an + * exception. * * > **NOTE**: Sending non-standard JavaScript types such as DOM objects or special * Electron objects is deprecated, and will begin throwing an exception starting @@ -43,8 +62,51 @@ export interface IpcRenderer { * * The main process handles it by listening for `channel` with the `ipcMain` * module. + * + * If you need to transfer a `MessagePort` to the main process, use + * `ipcRenderer.postMessage`. + * + * If you want to receive a single response from the main process, like the result + * of a method call, consider using `ipcRenderer.invoke`. */ send(channel: string, ...args: any[]): void; + /** + * Resolves with the response from the main process. + * + * Send a message to the main process via `channel` and expect a result + * asynchronously. Arguments will be serialized with the Structured Clone + * Algorithm, just like `window.postMessage`, so prototype chains will not be + * included. Sending Functions, Promises, Symbols, WeakMaps, or WeakSets will throw + * an exception. + * + * > **NOTE**: Sending non-standard JavaScript types such as DOM objects or special + * Electron objects is deprecated, and will begin throwing an exception starting + * with Electron 9. + * + * The main process should listen for `channel` with `ipcMain.handle()`. + * + * For example: + * + * If you need to transfer a `MessagePort` to the main process, use + * `ipcRenderer.postMessage`. + * + * If you do not need a response to the message, consider using `ipcRenderer.send`. + */ + invoke(channel: string, ...args: any[]): Promise; + /** + * Send a message to the main process, optionally transferring ownership of zero or + * more `MessagePort` objects. + * + * The transferred `MessagePort` objects will be available in the main process as + * `MessagePortMain` objects by accessing the `ports` property of the emitted + * event. + * + * For example: + * + * For more information on using `MessagePort` and `MessageChannel`, see the MDN + * documentation. + */ + postMessage(channel: string, message: any, transfer?: MessagePort[]): void; } export interface WebFrame { @@ -70,16 +132,23 @@ export interface CrashReporter { * with crashes that occur in other renderer processes or in the main process. * * **Note:** Parameters have limits on the length of the keys and values. Key names - * must be no longer than 39 bytes, and values must be no longer than 127 bytes. + * must be no longer than 39 bytes, and values must be no longer than 20320 bytes. * Keys with names longer than the maximum will be silently ignored. Key values * longer than the maximum length will be truncated. + * + * **Note:** On linux values that are longer than 127 bytes will be chunked into + * multiple keys, each 127 bytes in length. E.g. `addExtraParameter('foo', + * 'a'.repeat(130))` will result in two chunked keys `foo__1` and `foo__2`, the + * first will contain the first 127 bytes and the second will contain the remaining + * 3 bytes. On your crash reporting backend you should stitch together keys in + * this format. */ addExtraParameter(key: string, value: string): void; } export interface ProcessMemoryInfo { - // Docs: http://electronjs.org/docs/api/structures/process-memory-info + // Docs: https://electronjs.org/docs/api/structures/process-memory-info /** * The amount of memory not shared by other processes, such as JS heap or HTML @@ -133,10 +202,7 @@ export interface CrashReporterStartOptions { rateLimit?: boolean; /** * If true, crash reports will be compressed and uploaded with `Content-Encoding: - * gzip`. Not all collection servers support compressed payloads. Default is - * `false`. - * - * @platform darwin,win32 + * gzip`. Default is `false`. */ compress?: boolean; /** From eba7707d382d80edd3072a922324424225cce40f Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 09:32:30 +0100 Subject: [PATCH 012/171] shared process - clean up some types and imports --- .../{ipc.electron-main.ts => ipc.electron.ts} | 1 + ...pc.electron-sandbox.ts => ipc.electron.ts} | 1 + .../sharedProcess/sharedProcessMain.ts | 24 +++++++++---------- src/vs/code/electron-main/app.ts | 16 ++++++------- src/vs/code/electron-main/main.ts | 16 ++++++------- .../electron-sandbox/mainProcessService.ts | 2 +- 6 files changed, 31 insertions(+), 29 deletions(-) rename src/vs/base/parts/ipc/electron-main/{ipc.electron-main.ts => ipc.electron.ts} (99%) rename src/vs/base/parts/ipc/electron-sandbox/{ipc.electron-sandbox.ts => ipc.electron.ts} (99%) diff --git a/src/vs/base/parts/ipc/electron-main/ipc.electron-main.ts b/src/vs/base/parts/ipc/electron-main/ipc.electron.ts similarity index 99% rename from src/vs/base/parts/ipc/electron-main/ipc.electron-main.ts rename to src/vs/base/parts/ipc/electron-main/ipc.electron.ts index b84a1d653dc..405fbcc7669 100644 --- a/src/vs/base/parts/ipc/electron-main/ipc.electron-main.ts +++ b/src/vs/base/parts/ipc/electron-main/ipc.electron.ts @@ -18,6 +18,7 @@ interface IIPCEvent { function createScopedOnMessageEvent(senderId: number, eventName: string): Event { const onMessage = Event.fromNodeEventEmitter(ipcMain, eventName, (event, message) => ({ event, message })); const onMessageFromSender = Event.filter(onMessage, ({ event }) => event.sender.id === senderId); + return Event.map(onMessageFromSender, ({ message }) => message ? VSBuffer.wrap(message) : message); } diff --git a/src/vs/base/parts/ipc/electron-sandbox/ipc.electron-sandbox.ts b/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts similarity index 99% rename from src/vs/base/parts/ipc/electron-sandbox/ipc.electron-sandbox.ts rename to src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts index 19ca487c890..46dac6483e4 100644 --- a/src/vs/base/parts/ipc/electron-sandbox/ipc.electron-sandbox.ts +++ b/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts @@ -17,6 +17,7 @@ export class Client extends IPCClient implements IDisposable { private static createProtocol(): Protocol { const onMessage = Event.fromNodeEventEmitter(ipcRenderer, 'vscode:message', (_, message) => VSBuffer.wrap(message)); ipcRenderer.send('vscode:hello'); + return new Protocol(ipcRenderer, onMessage); } diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 1224377cb0d..ce59f7c86d7 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -3,10 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as fs from 'fs'; -import * as platform from 'vs/base/common/platform'; import product from 'vs/platform/product/common/product'; -import { serve, Server, connect } from 'vs/base/parts/ipc/node/ipc.net'; +import { unlinkSync } from 'fs'; +import { isWindows } from 'vs/base/common/platform'; +import { IChannel, IServerChannel, StaticRouter, createChannelSender, createChannelReceiver } from 'vs/base/parts/ipc/common/ipc'; +import { serve as nodeIPCServe, Server as NodeIPCServer, connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; @@ -35,7 +36,6 @@ import { ILocalizationsService } from 'vs/platform/localizations/common/localiza import { combinedDisposable, DisposableStore, toDisposable } from 'vs/base/common/lifecycle'; import { DownloadService } from 'vs/platform/download/common/downloadService'; import { IDownloadService } from 'vs/platform/download/common/download'; -import { IChannel, IServerChannel, StaticRouter, createChannelSender, createChannelReceiver } from 'vs/base/parts/ipc/common/ipc'; import { NodeCachedDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner'; import { LanguagePackCachedDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/languagePackCachedDataCleaner'; import { StorageDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/storageDataCleaner'; @@ -95,7 +95,7 @@ const eventPrefix = 'monacoworkbench'; class MainProcessService implements IMainProcessService { constructor( - private server: Server, + private server: NodeIPCServer, private mainRouter: StaticRouter ) { } @@ -110,7 +110,7 @@ class MainProcessService implements IMainProcessService { } } -async function main(server: Server, initData: ISharedProcessInitData, configuration: ISharedProcessConfiguration): Promise { +async function main(server: NodeIPCServer, initData: ISharedProcessInitData, configuration: ISharedProcessConfiguration): Promise { const services = new ServiceCollection(); const disposables = new DisposableStore(); @@ -276,16 +276,16 @@ async function main(server: Server, initData: ISharedProcessInitData, configurat }); } -function setupIPC(hook: string): Promise { - function setup(retry: boolean): Promise { - return serve(hook).then(null, err => { - if (!retry || platform.isWindows || err.code !== 'EADDRINUSE') { +function setupIPC(hook: string): Promise { + function setup(retry: boolean): Promise { + return nodeIPCServe(hook).then(null, err => { + if (!retry || isWindows || err.code !== 'EADDRINUSE') { return Promise.reject(err); } // should retry, not windows and eaddrinuse - return connect(hook, '').then( + return nodeIPCConnect(hook, '').then( client => { // we could connect to a running instance. this is not good, abort client.dispose(); @@ -296,7 +296,7 @@ function setupIPC(hook: string): Promise { // let's delete it, since we can't connect to it // and the retry the whole thing try { - fs.unlinkSync(hook); + unlinkSync(hook); } catch (e) { return Promise.reject(new Error('Error deleting the shared ipc hook.')); } diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index e0727c37702..4f7c694384b 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -11,9 +11,10 @@ import { ILifecycleMainService, LifecycleMainPhase } from 'vs/platform/lifecycle import { resolveShellEnv } from 'vs/code/node/shellEnv'; import { IUpdateService } from 'vs/platform/update/common/update'; import { UpdateChannel } from 'vs/platform/update/electron-main/updateIpc'; -import { Server as ElectronIPCServer } from 'vs/base/parts/ipc/electron-main/ipc.electron-main'; -import { Client } from 'vs/base/parts/ipc/common/ipc.net'; -import { Server, connect } from 'vs/base/parts/ipc/node/ipc.net'; +import { getDelayedChannel, StaticRouter, createChannelReceiver, createChannelSender } from 'vs/base/parts/ipc/common/ipc'; +import { Server as ElectronIPCServer } from 'vs/base/parts/ipc/electron-main/ipc.electron'; +import { Client as NodeIPCClient } from 'vs/base/parts/ipc/common/ipc.net'; +import { Server as NodeIPCServer, connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; import { SharedProcess } from 'vs/code/electron-main/sharedProcess'; import { LaunchMainService, ILaunchMainService } from 'vs/platform/launch/electron-main/launchMainService'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; @@ -30,7 +31,6 @@ import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtil import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc'; import { TelemetryService, ITelemetryServiceConfig } from 'vs/platform/telemetry/common/telemetryService'; import { resolveCommonProperties } from 'vs/platform/telemetry/node/commonProperties'; -import { getDelayedChannel, StaticRouter, createChannelReceiver, createChannelSender } from 'vs/base/parts/ipc/common/ipc'; import product from 'vs/platform/product/common/product'; import { ProxyAuthHandler } from 'vs/code/electron-main/auth'; import { FileProtocolHandler } from 'vs/code/electron-main/protocol'; @@ -96,7 +96,7 @@ export class CodeApplication extends Disposable { private nativeHostMainService: INativeHostMainService | undefined; constructor( - private readonly mainIpcServer: Server, + private readonly mainIpcServer: NodeIPCServer, private readonly userEnv: IProcessEnvironment, @IInstantiationService private readonly instantiationService: IInstantiationService, @ILogService private readonly logService: ILogService, @@ -429,7 +429,7 @@ export class CodeApplication extends Disposable { const sharedProcessClient = sharedProcess.whenIpcReady().then(() => { this.logService.trace('Shared process: IPC ready'); - return connect(this.environmentService.sharedIPCHandle, 'main'); + return nodeIPCConnect(this.environmentService.sharedIPCHandle, 'main'); }); const sharedProcessReady = sharedProcess.whenReady().then(() => { this.logService.trace('Shared process: init ready'); @@ -482,7 +482,7 @@ export class CodeApplication extends Disposable { return machineId; } - private async createServices(machineId: string, sharedProcess: SharedProcess, sharedProcessReady: Promise>): Promise { + private async createServices(machineId: string, sharedProcess: SharedProcess, sharedProcessReady: Promise>): Promise { const services = new ServiceCollection(); switch (process.platform) { @@ -584,7 +584,7 @@ export class CodeApplication extends Disposable { }); } - private openFirstWindow(accessor: ServicesAccessor, electronIpcServer: ElectronIPCServer, sharedProcessClient: Promise>, fileProtocolHandler: FileProtocolHandler): ICodeWindow[] { + private openFirstWindow(accessor: ServicesAccessor, electronIpcServer: ElectronIPCServer, sharedProcessClient: Promise>, fileProtocolHandler: FileProtocolHandler): ICodeWindow[] { // Register more Main IPC services const launchMainService = accessor.get(ILaunchMainService); diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index 0b1f02df1d5..e217f3b7d15 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -13,8 +13,9 @@ import { parseMainProcessArgv, addArg } from 'vs/platform/environment/node/argvH import { createWaitMarkerFile } from 'vs/platform/environment/node/waitMarkerFile'; import { mkdirp } from 'vs/base/node/pfs'; import { LifecycleMainService, ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; -import { Server, serve, connect, XDG_RUNTIME_DIR } from 'vs/base/parts/ipc/node/ipc.net'; import { createChannelSender } from 'vs/base/parts/ipc/common/ipc'; +import { Server as NodeIPCServer, serve as nodeIPCServe, connect as nodeIPCConnect, XDG_RUNTIME_DIR } from 'vs/base/parts/ipc/node/ipc.net'; +import { Client as NodeIPCClient } from 'vs/base/parts/ipc/common/ipc.net'; import { ILaunchMainService } from 'vs/platform/launch/electron-main/launchMainService'; import { ServicesAccessor, IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; @@ -35,7 +36,6 @@ import { SpdLogService } from 'vs/platform/log/node/spdlogService'; import { BufferLogService } from 'vs/platform/log/common/bufferLog'; import { setUnexpectedErrorHandler } from 'vs/base/common/errors'; import { IThemeMainService, ThemeMainService } from 'vs/platform/theme/electron-main/themeMainService'; -import { Client } from 'vs/base/parts/ipc/common/ipc.net'; import { once } from 'vs/base/common/functional'; import { ISignService } from 'vs/platform/sign/common/sign'; import { SignService } from 'vs/platform/sign/node/signService'; @@ -213,14 +213,14 @@ class CodeMain { return instanceEnvironment; } - private async doStartup(args: NativeParsedArgs, logService: ILogService, environmentService: IEnvironmentMainService, lifecycleMainService: ILifecycleMainService, instantiationService: IInstantiationService, retry: boolean): Promise { + private async doStartup(args: NativeParsedArgs, logService: ILogService, environmentService: IEnvironmentMainService, lifecycleMainService: ILifecycleMainService, instantiationService: IInstantiationService, retry: boolean): Promise { // Try to setup a server for running. If that succeeds it means // we are the first instance to startup. Otherwise it is likely // that another instance is already running. - let server: Server; + let server: NodeIPCServer; try { - server = await serve(environmentService.mainIPCHandle); + server = await nodeIPCServe(environmentService.mainIPCHandle); once(lifecycleMainService.onWillShutdown)(() => server.dispose()); } catch (error) { @@ -236,9 +236,9 @@ class CodeMain { } // there's a running instance, let's connect to it - let client: Client; + let client: NodeIPCClient; try { - client = await connect(environmentService.mainIPCHandle, 'main'); + client = await nodeIPCConnect(environmentService.mainIPCHandle, 'main'); } catch (error) { // Handle unexpected connection errors by showing a dialog to the user @@ -296,7 +296,7 @@ class CodeMain { return instantiationService.invokeFunction(async () => { // Create a diagnostic service connected to the existing shared process - const sharedProcessClient = await connect(environmentService.sharedIPCHandle, 'main'); + const sharedProcessClient = await nodeIPCConnect(environmentService.sharedIPCHandle, 'main'); const diagnosticsChannel = sharedProcessClient.getChannel('diagnostics'); const diagnosticsService = createChannelSender(diagnosticsChannel); const mainProcessInfo = await launchService.getMainProcessInfo(); diff --git a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts index b2c78a33279..c3249d81e55 100644 --- a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts +++ b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IChannel, IServerChannel } from 'vs/base/parts/ipc/common/ipc'; -import { Client } from 'vs/base/parts/ipc/electron-sandbox/ipc.electron-sandbox'; +import { Client } from 'vs/base/parts/ipc/electron-sandbox/ipc.electron'; import { Disposable } from 'vs/base/common/lifecycle'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; From 7eb52e75e081de934d095887e95de1cf3dc8b38a Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 09:44:47 +0100 Subject: [PATCH 013/171] shared process - more renames --- .../electron-browser/sharedProcessService.ts | 3 +-- .../electron-main/sharedProcessMainService.ts | 9 ++++---- .../electron-sandbox/mainProcessService.ts | 6 +++--- .../actions/developerActions.ts | 2 +- .../electron-browser/sharedProcessService.ts | 21 +++++++++++-------- .../electron-browser/workbenchTestServices.ts | 3 +-- 6 files changed, 23 insertions(+), 21 deletions(-) diff --git a/src/vs/platform/ipc/electron-browser/sharedProcessService.ts b/src/vs/platform/ipc/electron-browser/sharedProcessService.ts index 59fb5a6bd43..0f88b08c2a3 100644 --- a/src/vs/platform/ipc/electron-browser/sharedProcessService.ts +++ b/src/vs/platform/ipc/electron-browser/sharedProcessService.ts @@ -15,6 +15,5 @@ export interface ISharedProcessService { getChannel(channelName: string): IChannel; registerChannel(channelName: string, channel: IServerChannel): void; - whenSharedProcessReady(): Promise; - toggleSharedProcessWindow(): Promise; + toggleWindow(): Promise; } diff --git a/src/vs/platform/ipc/electron-main/sharedProcessMainService.ts b/src/vs/platform/ipc/electron-main/sharedProcessMainService.ts index 97decd56a1a..1c01cfaa2d7 100644 --- a/src/vs/platform/ipc/electron-main/sharedProcessMainService.ts +++ b/src/vs/platform/ipc/electron-main/sharedProcessMainService.ts @@ -11,8 +11,9 @@ export interface ISharedProcessMainService { readonly _serviceBrand: undefined; - whenSharedProcessReady(): Promise; - toggleSharedProcessWindow(): Promise; + whenReady(): Promise; + + toggleWindow(): Promise; } export interface ISharedProcess { @@ -26,11 +27,11 @@ export class SharedProcessMainService implements ISharedProcessMainService { constructor(private sharedProcess: ISharedProcess) { } - whenSharedProcessReady(): Promise { + whenReady(): Promise { return this.sharedProcess.whenReady(); } - async toggleSharedProcessWindow(): Promise { + async toggleWindow(): Promise { return this.sharedProcess.toggle(); } } diff --git a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts index c3249d81e55..0fc2e8cad56 100644 --- a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts +++ b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IChannel, IServerChannel } from 'vs/base/parts/ipc/common/ipc'; -import { Client } from 'vs/base/parts/ipc/electron-sandbox/ipc.electron'; +import { Client as IPCElectronClient } from 'vs/base/parts/ipc/electron-sandbox/ipc.electron'; import { Disposable } from 'vs/base/common/lifecycle'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; @@ -23,14 +23,14 @@ export class MainProcessService extends Disposable implements IMainProcessServic declare readonly _serviceBrand: undefined; - private mainProcessConnection: Client; + private mainProcessConnection: IPCElectronClient; constructor( windowId: number ) { super(); - this.mainProcessConnection = this._register(new Client(`window:${windowId}`)); + this.mainProcessConnection = this._register(new IPCElectronClient(`window:${windowId}`)); } getChannel(channelName: string): IChannel { diff --git a/src/vs/workbench/electron-browser/actions/developerActions.ts b/src/vs/workbench/electron-browser/actions/developerActions.ts index 8b57bfc9634..c699748e2b2 100644 --- a/src/vs/workbench/electron-browser/actions/developerActions.ts +++ b/src/vs/workbench/electron-browser/actions/developerActions.ts @@ -21,7 +21,7 @@ class ToggleSharedProcessAction extends Action2 { } async run(accessor: ServicesAccessor): Promise { - return accessor.get(ISharedProcessService).toggleSharedProcessWindow(); + return accessor.get(ISharedProcessService).toggleWindow(); } } diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts index 07a248a9a14..1631e321e16 100644 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts @@ -3,8 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Client } from 'vs/base/parts/ipc/common/ipc.net'; -import { connect } from 'vs/base/parts/ipc/node/ipc.net'; +import { Client as NodeIPCClient } from 'vs/base/parts/ipc/common/ipc.net'; +import { connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; import { IChannel, IServerChannel, getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; @@ -16,7 +16,7 @@ export class SharedProcessService implements ISharedProcessService { declare readonly _serviceBrand: undefined; - private withSharedProcessConnection: Promise>; + private withSharedProcessConnection: Promise>; private sharedProcessMainChannel: IChannel; constructor( @@ -26,12 +26,15 @@ export class SharedProcessService implements ISharedProcessService { ) { this.sharedProcessMainChannel = mainProcessService.getChannel('sharedProcess'); - this.withSharedProcessConnection = this.whenSharedProcessReady() - .then(() => connect(environmentService.sharedIPCHandle, `window:${nativeHostService.windowId}`)); + this.withSharedProcessConnection = (async () => { + await this.whenReady(); + + return nodeIPCConnect(environmentService.sharedIPCHandle, `window:${nativeHostService.windowId}`); + })(); } - whenSharedProcessReady(): Promise { - return this.sharedProcessMainChannel.call('whenSharedProcessReady'); + private whenReady(): Promise { + return this.sharedProcessMainChannel.call('whenReady'); } getChannel(channelName: string): IChannel { @@ -42,8 +45,8 @@ export class SharedProcessService implements ISharedProcessService { this.withSharedProcessConnection.then(connection => connection.registerChannel(channelName, channel)); } - toggleSharedProcessWindow(): Promise { - return this.sharedProcessMainChannel.call('toggleSharedProcessWindow'); + toggleWindow(): Promise { + return this.sharedProcessMainChannel.call('toggleWindow'); } } diff --git a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts index 668b17333f2..54a44c2fc4a 100644 --- a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts @@ -152,8 +152,7 @@ export class TestSharedProcessService implements ISharedProcessService { registerChannel(channelName: string, channel: any): void { } - async toggleSharedProcessWindow(): Promise { } - async whenSharedProcessReady(): Promise { } + async toggleWindow(): Promise { } } export class TestNativeHostService implements INativeHostService { From 1fae5211635c9cb2917d41d3b3a76ebaf0412063 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 10:28:57 +0100 Subject: [PATCH 014/171] shared process - more cleanup --- .../sharedProcess/sharedProcess.js | 2 +- .../sharedProcess/sharedProcessMain.ts | 308 +++++++++--------- .../electron-browser/workbench/workbench.js | 2 +- .../electron-sandbox/workbench/workbench.js | 18 +- 4 files changed, 170 insertions(+), 160 deletions(-) diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcess.js b/src/vs/code/electron-browser/sharedProcess/sharedProcess.js index 8874e87208a..d3315d0a073 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcess.js +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcess.js @@ -15,7 +15,7 @@ // Load shared process into window bootstrapWindow.load(['vs/code/electron-browser/sharedProcess/sharedProcessMain'], function (sharedProcess, configuration) { - sharedProcess.startup({ + return sharedProcess.main({ machineId: configuration.machineId, windowId: configuration.windowId }); diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index ce59f7c86d7..544d8286ee5 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -33,7 +33,7 @@ import { ILogService, LogLevel, ILoggerService } from 'vs/platform/log/common/lo import { LoggerChannelClient, FollowerLogService } from 'vs/platform/log/common/logIpc'; import { LocalizationsService } from 'vs/platform/localizations/node/localizations'; import { ILocalizationsService } from 'vs/platform/localizations/common/localizations'; -import { combinedDisposable, DisposableStore, toDisposable } from 'vs/base/common/lifecycle'; +import { combinedDisposable, Disposable, toDisposable } from 'vs/base/common/lifecycle'; import { DownloadService } from 'vs/platform/download/common/downloadService'; import { IDownloadService } from 'vs/platform/download/common/download'; import { NodeCachedDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/nodeCachedDataCleaner'; @@ -78,10 +78,6 @@ export interface ISharedProcessConfiguration { readonly windowId: number; } -export function startup(configuration: ISharedProcessConfiguration) { - handshake(configuration); -} - interface ISharedProcessInitData { sharedIPCHandle: string; args: NativeParsedArgs; @@ -94,13 +90,13 @@ const eventPrefix = 'monacoworkbench'; class MainProcessService implements IMainProcessService { + declare readonly _serviceBrand: undefined; + constructor( private server: NodeIPCServer, private mainRouter: StaticRouter ) { } - declare readonly _serviceBrand: undefined; - getChannel(channelName: string): IChannel { return this.server.getChannel(channelName, this.mainRouter); } @@ -110,170 +106,167 @@ class MainProcessService implements IMainProcessService { } } -async function main(server: NodeIPCServer, initData: ISharedProcessInitData, configuration: ISharedProcessConfiguration): Promise { - const services = new ServiceCollection(); +class SharedProcessMain extends Disposable { - const disposables = new DisposableStore(); - - const onExit = () => disposables.dispose(); - process.once('exit', onExit); - ipcRenderer.once('vscode:electron-main->shared-process=exit', onExit); - - disposables.add(server); - - const environmentService = new NativeEnvironmentService(initData.args); - - const mainRouter = new StaticRouter(ctx => ctx === 'main'); - const loggerClient = new LoggerChannelClient(server.getChannel('logger', mainRouter)); - const logService = new FollowerLogService(loggerClient, new SpdLogService('sharedprocess', environmentService.logsPath, initData.logLevel)); - disposables.add(logService); - logService.info('main', JSON.stringify(configuration)); - - const mainProcessService = new MainProcessService(server, mainRouter); - services.set(IMainProcessService, mainProcessService); - - // Files - const fileService = new FileService(logService); - services.set(IFileService, fileService); - disposables.add(fileService); - const diskFileSystemProvider = new DiskFileSystemProvider(logService); - disposables.add(diskFileSystemProvider); - fileService.registerProvider(Schemas.file, diskFileSystemProvider); - - // Configuration - const configurationService = new ConfigurationService(environmentService.settingsResource, fileService); - disposables.add(configurationService); - await configurationService.initialize(); - - // Storage - const storageService = new NativeStorageService(new GlobalStorageDatabaseChannelClient(mainProcessService.getChannel('storage')), logService, environmentService); - await storageService.initialize(); - services.set(IStorageService, storageService); - disposables.add(toDisposable(() => storageService.flush())); - - services.set(IEnvironmentService, environmentService); - services.set(INativeEnvironmentService, environmentService); - - services.set(IProductService, { _serviceBrand: undefined, ...product }); - services.set(ILogService, logService); - services.set(IConfigurationService, configurationService); - services.set(IRequestService, new SyncDescriptor(RequestService)); - services.set(ILoggerService, new SyncDescriptor(LoggerService)); - - const nativeHostService = createChannelSender(mainProcessService.getChannel('nativeHost'), { context: configuration.windowId }); - services.set(INativeHostService, nativeHostService); - const activeWindowManager = new ActiveWindowManager(nativeHostService); - const activeWindowRouter = new StaticRouter(ctx => activeWindowManager.getActiveClientId().then(id => ctx === id)); - - services.set(IDownloadService, new SyncDescriptor(DownloadService)); - services.set(IExtensionRecommendationNotificationService, new ExtensionRecommendationNotificationServiceChannelClient(server.getChannel('IExtensionRecommendationNotificationService', activeWindowRouter))); - - const instantiationService = new InstantiationService(services); - - let telemetryService: ITelemetryService; - instantiationService.invokeFunction(accessor => { + async init(server: NodeIPCServer, initData: ISharedProcessInitData, configuration: ISharedProcessConfiguration): Promise { const services = new ServiceCollection(); - const { appRoot, extensionsPath, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService; - let telemetryAppender: ITelemetryAppender = NullAppender; - if (!extensionDevelopmentLocationURI && !environmentService.disableTelemetry && product.enableTelemetry) { - telemetryAppender = new TelemetryLogAppender(accessor.get(ILoggerService), environmentService); - if (product.aiConfig && product.aiConfig.asimovKey && isBuilt) { - const appInsightsAppender = new AppInsightsAppender(eventPrefix, null, product.aiConfig.asimovKey); - disposables.add(toDisposable(() => appInsightsAppender!.flush())); // Ensure the AI appender is disposed so that it flushes remaining data - telemetryAppender = combinedAppender(appInsightsAppender, telemetryAppender); + const onExit = () => this.dispose(); + process.once('exit', onExit); + ipcRenderer.once('vscode:electron-main->shared-process=exit', onExit); + + this._register(server); + + const environmentService = new NativeEnvironmentService(initData.args); + + const mainRouter = new StaticRouter(ctx => ctx === 'main'); + const loggerClient = new LoggerChannelClient(server.getChannel('logger', mainRouter)); + const logService = this._register(new FollowerLogService(loggerClient, new SpdLogService('sharedprocess', environmentService.logsPath, initData.logLevel))); + logService.info('main', JSON.stringify(configuration)); + + const mainProcessService = new MainProcessService(server, mainRouter); + services.set(IMainProcessService, mainProcessService); + + // Files + const fileService = this._register(new FileService(logService)); + services.set(IFileService, fileService); + const diskFileSystemProvider = this._register(new DiskFileSystemProvider(logService)); + fileService.registerProvider(Schemas.file, diskFileSystemProvider); + + // Configuration + const configurationService = this._register(new ConfigurationService(environmentService.settingsResource, fileService)); + await configurationService.initialize(); + + // Storage + const storageService = new NativeStorageService(new GlobalStorageDatabaseChannelClient(mainProcessService.getChannel('storage')), logService, environmentService); + await storageService.initialize(); + services.set(IStorageService, storageService); + this._register(toDisposable(() => storageService.flush())); + + services.set(IEnvironmentService, environmentService); + services.set(INativeEnvironmentService, environmentService); + + services.set(IProductService, { _serviceBrand: undefined, ...product }); + services.set(ILogService, logService); + services.set(IConfigurationService, configurationService); + services.set(IRequestService, new SyncDescriptor(RequestService)); + services.set(ILoggerService, new SyncDescriptor(LoggerService)); + + const nativeHostService = createChannelSender(mainProcessService.getChannel('nativeHost'), { context: configuration.windowId }); + services.set(INativeHostService, nativeHostService); + const activeWindowManager = new ActiveWindowManager(nativeHostService); + const activeWindowRouter = new StaticRouter(ctx => activeWindowManager.getActiveClientId().then(id => ctx === id)); + + services.set(IDownloadService, new SyncDescriptor(DownloadService)); + services.set(IExtensionRecommendationNotificationService, new ExtensionRecommendationNotificationServiceChannelClient(server.getChannel('IExtensionRecommendationNotificationService', activeWindowRouter))); + + const instantiationService = new InstantiationService(services); + + let telemetryService: ITelemetryService; + instantiationService.invokeFunction(accessor => { + const services = new ServiceCollection(); + const { appRoot, extensionsPath, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService; + + let telemetryAppender: ITelemetryAppender = NullAppender; + if (!extensionDevelopmentLocationURI && !environmentService.disableTelemetry && product.enableTelemetry) { + telemetryAppender = new TelemetryLogAppender(accessor.get(ILoggerService), environmentService); + if (product.aiConfig && product.aiConfig.asimovKey && isBuilt) { + const appInsightsAppender = new AppInsightsAppender(eventPrefix, null, product.aiConfig.asimovKey); + this._register(toDisposable(() => appInsightsAppender!.flush())); // Ensure the AI appender is disposed so that it flushes remaining data + telemetryAppender = combinedAppender(appInsightsAppender, telemetryAppender); + } + const config: ITelemetryServiceConfig = { + appender: telemetryAppender, + commonProperties: resolveCommonProperties(product.commit, product.version, configuration.machineId, product.msftInternalDomains, installSourcePath), + sendErrorTelemetry: true, + piiPaths: [appRoot, extensionsPath] + }; + + telemetryService = new TelemetryService(config, configurationService); + services.set(ITelemetryService, telemetryService); + } else { + telemetryService = NullTelemetryService; + services.set(ITelemetryService, NullTelemetryService); } - const config: ITelemetryServiceConfig = { - appender: telemetryAppender, - commonProperties: resolveCommonProperties(product.commit, product.version, configuration.machineId, product.msftInternalDomains, installSourcePath), - sendErrorTelemetry: true, - piiPaths: [appRoot, extensionsPath] - }; + server.registerChannel('telemetryAppender', new TelemetryAppenderChannel(telemetryAppender)); - telemetryService = new TelemetryService(config, configurationService); - services.set(ITelemetryService, telemetryService); - } else { - telemetryService = NullTelemetryService; - services.set(ITelemetryService, NullTelemetryService); - } - server.registerChannel('telemetryAppender', new TelemetryAppenderChannel(telemetryAppender)); + services.set(IExtensionManagementService, new SyncDescriptor(ExtensionManagementService)); + services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService)); + services.set(ILocalizationsService, new SyncDescriptor(LocalizationsService)); + services.set(IDiagnosticsService, new SyncDescriptor(DiagnosticsService)); + services.set(IExtensionTipsService, new SyncDescriptor(ExtensionTipsService)); - services.set(IExtensionManagementService, new SyncDescriptor(ExtensionManagementService)); - services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService)); - services.set(ILocalizationsService, new SyncDescriptor(LocalizationsService)); - services.set(IDiagnosticsService, new SyncDescriptor(DiagnosticsService)); - services.set(IExtensionTipsService, new SyncDescriptor(ExtensionTipsService)); + services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService)); + services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService)); + services.set(IUserDataSyncUtilService, new UserDataSyncUtilServiceClient(server.getChannel('userDataSyncUtil', client => client.ctx !== 'main'))); + services.set(IGlobalExtensionEnablementService, new SyncDescriptor(GlobalExtensionEnablementService)); + services.set(IIgnoredExtensionsManagementService, new SyncDescriptor(IgnoredExtensionsManagementService)); + services.set(IExtensionsStorageSyncService, new SyncDescriptor(ExtensionsStorageSyncService)); + services.set(IUserDataSyncStoreManagementService, new SyncDescriptor(UserDataSyncStoreManagementService)); + services.set(IUserDataSyncStoreService, new SyncDescriptor(UserDataSyncStoreService)); + services.set(IUserDataSyncMachinesService, new SyncDescriptor(UserDataSyncMachinesService)); + services.set(IUserDataSyncBackupStoreService, new SyncDescriptor(UserDataSyncBackupStoreService)); + services.set(IUserDataAutoSyncEnablementService, new SyncDescriptor(UserDataAutoSyncEnablementService)); + services.set(IUserDataSyncResourceEnablementService, new SyncDescriptor(UserDataSyncResourceEnablementService)); + services.set(IUserDataSyncService, new SyncDescriptor(UserDataSyncService)); + registerConfiguration(); - services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService)); - services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService)); - services.set(IUserDataSyncUtilService, new UserDataSyncUtilServiceClient(server.getChannel('userDataSyncUtil', client => client.ctx !== 'main'))); - services.set(IGlobalExtensionEnablementService, new SyncDescriptor(GlobalExtensionEnablementService)); - services.set(IIgnoredExtensionsManagementService, new SyncDescriptor(IgnoredExtensionsManagementService)); - services.set(IExtensionsStorageSyncService, new SyncDescriptor(ExtensionsStorageSyncService)); - services.set(IUserDataSyncStoreManagementService, new SyncDescriptor(UserDataSyncStoreManagementService)); - services.set(IUserDataSyncStoreService, new SyncDescriptor(UserDataSyncStoreService)); - services.set(IUserDataSyncMachinesService, new SyncDescriptor(UserDataSyncMachinesService)); - services.set(IUserDataSyncBackupStoreService, new SyncDescriptor(UserDataSyncBackupStoreService)); - services.set(IUserDataAutoSyncEnablementService, new SyncDescriptor(UserDataAutoSyncEnablementService)); - services.set(IUserDataSyncResourceEnablementService, new SyncDescriptor(UserDataSyncResourceEnablementService)); - services.set(IUserDataSyncService, new SyncDescriptor(UserDataSyncService)); - registerConfiguration(); + const instantiationService2 = instantiationService.createChild(services); - const instantiationService2 = instantiationService.createChild(services); + instantiationService2.invokeFunction(accessor => { - instantiationService2.invokeFunction(accessor => { + const extensionManagementService = accessor.get(IExtensionManagementService); + const channel = new ExtensionManagementChannel(extensionManagementService, () => null); + server.registerChannel('extensions', channel); - const extensionManagementService = accessor.get(IExtensionManagementService); - const channel = new ExtensionManagementChannel(extensionManagementService, () => null); - server.registerChannel('extensions', channel); + const localizationsService = accessor.get(ILocalizationsService); + const localizationsChannel = createChannelReceiver(localizationsService); + server.registerChannel('localizations', localizationsChannel); - const localizationsService = accessor.get(ILocalizationsService); - const localizationsChannel = createChannelReceiver(localizationsService); - server.registerChannel('localizations', localizationsChannel); + const diagnosticsService = accessor.get(IDiagnosticsService); + const diagnosticsChannel = createChannelReceiver(diagnosticsService); + server.registerChannel('diagnostics', diagnosticsChannel); - const diagnosticsService = accessor.get(IDiagnosticsService); - const diagnosticsChannel = createChannelReceiver(diagnosticsService); - server.registerChannel('diagnostics', diagnosticsChannel); + const extensionTipsService = accessor.get(IExtensionTipsService); + const extensionTipsChannel = new ExtensionTipsChannel(extensionTipsService); + server.registerChannel('extensionTipsService', extensionTipsChannel); - const extensionTipsService = accessor.get(IExtensionTipsService); - const extensionTipsChannel = new ExtensionTipsChannel(extensionTipsService); - server.registerChannel('extensionTipsService', extensionTipsChannel); + const userDataSyncMachinesService = accessor.get(IUserDataSyncMachinesService); + const userDataSyncMachineChannel = new UserDataSyncMachinesServiceChannel(userDataSyncMachinesService); + server.registerChannel('userDataSyncMachines', userDataSyncMachineChannel); - const userDataSyncMachinesService = accessor.get(IUserDataSyncMachinesService); - const userDataSyncMachineChannel = new UserDataSyncMachinesServiceChannel(userDataSyncMachinesService); - server.registerChannel('userDataSyncMachines', userDataSyncMachineChannel); + const authTokenService = accessor.get(IUserDataSyncAccountService); + const authTokenChannel = new UserDataSyncAccountServiceChannel(authTokenService); + server.registerChannel('userDataSyncAccount', authTokenChannel); - const authTokenService = accessor.get(IUserDataSyncAccountService); - const authTokenChannel = new UserDataSyncAccountServiceChannel(authTokenService); - server.registerChannel('userDataSyncAccount', authTokenChannel); + const userDataSyncStoreManagementService = accessor.get(IUserDataSyncStoreManagementService); + const userDataSyncStoreManagementChannel = new UserDataSyncStoreManagementServiceChannel(userDataSyncStoreManagementService); + server.registerChannel('userDataSyncStoreManagement', userDataSyncStoreManagementChannel); - const userDataSyncStoreManagementService = accessor.get(IUserDataSyncStoreManagementService); - const userDataSyncStoreManagementChannel = new UserDataSyncStoreManagementServiceChannel(userDataSyncStoreManagementService); - server.registerChannel('userDataSyncStoreManagement', userDataSyncStoreManagementChannel); + const userDataSyncService = accessor.get(IUserDataSyncService); + const userDataSyncChannel = new UserDataSyncChannel(server, userDataSyncService, logService); + server.registerChannel('userDataSync', userDataSyncChannel); - const userDataSyncService = accessor.get(IUserDataSyncService); - const userDataSyncChannel = new UserDataSyncChannel(server, userDataSyncService, logService); - server.registerChannel('userDataSync', userDataSyncChannel); + const userDataAutoSync = instantiationService2.createInstance(UserDataAutoSyncService); + const userDataAutoSyncChannel = new UserDataAutoSyncChannel(userDataAutoSync); + server.registerChannel('userDataAutoSync', userDataAutoSyncChannel); - const userDataAutoSync = instantiationService2.createInstance(UserDataAutoSyncService); - const userDataAutoSyncChannel = new UserDataAutoSyncChannel(userDataAutoSync); - server.registerChannel('userDataAutoSync', userDataAutoSyncChannel); - - // clean up deprecated extensions - (extensionManagementService as ExtensionManagementService).removeDeprecatedExtensions(); - // update localizations cache - (localizationsService as LocalizationsService).update(); - // cache clean ups - disposables.add(combinedDisposable( - new NodeCachedDataCleaner(initData.nodeCachedDataDir), - instantiationService2.createInstance(LanguagePackCachedDataCleaner), - instantiationService2.createInstance(StorageDataCleaner, initData.backupWorkspacesPath), - instantiationService2.createInstance(LogsDataCleaner), - userDataAutoSync - )); - disposables.add(extensionManagementService as ExtensionManagementService); + // clean up deprecated extensions + (extensionManagementService as ExtensionManagementService).removeDeprecatedExtensions(); + // update localizations cache + (localizationsService as LocalizationsService).update(); + // cache clean ups + this._register(combinedDisposable( + new NodeCachedDataCleaner(initData.nodeCachedDataDir), + instantiationService2.createInstance(LanguagePackCachedDataCleaner), + instantiationService2.createInstance(StorageDataCleaner, initData.backupWorkspacesPath), + instantiationService2.createInstance(LogsDataCleaner), + userDataAutoSync + )); + this._register(extensionManagementService as ExtensionManagementService); + }); }); - }); + } } function setupIPC(hook: string): Promise { @@ -310,21 +303,22 @@ function setupIPC(hook: string): Promise { return setup(true); } -async function handshake(configuration: ISharedProcessConfiguration): Promise { +export async function main(configuration: ISharedProcessConfiguration): Promise { // receive payload from electron-main to start things - const data = await new Promise(c => { - ipcRenderer.once('vscode:electron-main->shared-process=payload', (event: unknown, r: ISharedProcessInitData) => c(r)); + const initData = await new Promise(resolve => { + ipcRenderer.once('vscode:electron-main->shared-process=payload', (event: unknown, r: ISharedProcessInitData) => resolve(r)); // tell electron-main we are ready to receive payload ipcRenderer.send('vscode:shared-process->electron-main=ready-for-payload'); }); // await IPC connection and signal this back to electron-main - const server = await setupIPC(data.sharedIPCHandle); + const server = await setupIPC(initData.sharedIPCHandle); ipcRenderer.send('vscode:shared-process->electron-main=ipc-ready'); // await initialization and signal this back to electron-main - await main(server, data, configuration); + const sharedProcess = new SharedProcessMain(); + await sharedProcess.init(server, initData, configuration); ipcRenderer.send('vscode:shared-process->electron-main=init-done'); } diff --git a/src/vs/code/electron-browser/workbench/workbench.js b/src/vs/code/electron-browser/workbench/workbench.js index 1b3746ef3bd..3dd49b7e976 100644 --- a/src/vs/code/electron-browser/workbench/workbench.js +++ b/src/vs/code/electron-browser/workbench/workbench.js @@ -23,7 +23,7 @@ 'vs/nls!vs/workbench/workbench.desktop.main', 'vs/css!vs/workbench/workbench.desktop.main' ], - async function (workbench, configuration) { + function (_, configuration) { // Mark start of workbench performance.mark('code/didLoadWorkbenchMain'); diff --git a/src/vs/code/electron-sandbox/workbench/workbench.js b/src/vs/code/electron-sandbox/workbench/workbench.js index 2b03bc3fd2a..34ffb7b3dfb 100644 --- a/src/vs/code/electron-sandbox/workbench/workbench.js +++ b/src/vs/code/electron-sandbox/workbench/workbench.js @@ -23,7 +23,7 @@ 'vs/nls!vs/workbench/workbench.desktop.main', 'vs/css!vs/workbench/workbench.desktop.main' ], - async function (workbench, configuration) { + function (workbench, configuration) { // Mark start of workbench performance.mark('code/didLoadWorkbenchMain'); @@ -45,6 +45,22 @@ } ); + // add default trustedTypes-policy for logging and to workaround + // lib/platform limitations + window.trustedTypes?.createPolicy('default', { + createHTML(value) { + // see https://github.com/electron/electron/issues/27211 + // Electron webviews use a static innerHTML default value and + // that isn't trusted. We use a default policy to check for the + // exact value of that innerHTML-string and only allow that. + if (value === '') { + return value; + } + // throw new Error('UNTRUSTED html usage, default trusted types policy should NEVER be reached'); + console.trace('UNTRUSTED html usage, default trusted types policy should NEVER be reached'); + return value; + } + }); //region Helpers From 7285f791ee57b103b94e83f2b6c77f37d2f2abb1 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Wed, 13 Jan 2021 10:43:30 +0100 Subject: [PATCH 015/171] Use menu --- .../contrib/comments/browser/commentsView.ts | 47 +++++++++++++------ 1 file changed, 33 insertions(+), 14 deletions(-) diff --git a/src/vs/workbench/contrib/comments/browser/commentsView.ts b/src/vs/workbench/contrib/comments/browser/commentsView.ts index b83fb80517a..e86a416f90f 100644 --- a/src/vs/workbench/contrib/comments/browser/commentsView.ts +++ b/src/vs/workbench/contrib/comments/browser/commentsView.ts @@ -7,10 +7,9 @@ import 'vs/css!./media/panel'; import * as nls from 'vs/nls'; import * as dom from 'vs/base/browser/dom'; import { basename } from 'vs/base/common/resources'; -import { IAction, Action } from 'vs/base/common/actions'; import { CollapseAllAction } from 'vs/base/browser/ui/tree/treeDefaults'; import { isCodeEditor } from 'vs/editor/browser/editorBrowser'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IThemeService } from 'vs/platform/theme/common/themeService'; import { CommentNode, CommentsModel, ResourceWithCommentThreads, ICommentThreadChangedEvent } from 'vs/workbench/contrib/comments/common/commentModel'; import { CommentController } from 'vs/workbench/contrib/comments/browser/commentsEditorContribution'; @@ -20,15 +19,19 @@ import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { textLinkForeground, textLinkActiveForeground, focusBorder, textPreformatForeground } from 'vs/platform/theme/common/colorRegistry'; import { ResourceLabels } from 'vs/workbench/browser/labels'; import { CommentsList, COMMENTS_VIEW_ID, COMMENTS_VIEW_TITLE } from 'vs/workbench/contrib/comments/browser/commentsTreeViewer'; -import { ViewPane, IViewPaneOptions } from 'vs/workbench/browser/parts/views/viewPane'; +import { ViewPane, IViewPaneOptions, ViewAction } from 'vs/workbench/browser/parts/views/viewPane'; import { IViewDescriptorService, IViewsService } from 'vs/workbench/common/views'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; -import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; +import { ContextKeyAndExpr, ContextKeyEqualsExpr, IContextKey, IContextKeyService, RawContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; +import { MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; +import { Codicon } from 'vs/base/common/codicons'; + +const CONTEXT_KEY_HAS_COMMENTS = new RawContextKey('commentsView.hasComments', false); export class CommentsPanel extends ViewPane { private treeLabels!: ResourceLabels; @@ -36,7 +39,7 @@ export class CommentsPanel extends ViewPane { private treeContainer!: HTMLElement; private messageBoxContainer!: HTMLElement; private commentsModel!: CommentsModel; - private collapseAllAction?: IAction; + private readonly hasCommentsContextKey: IContextKey; readonly onDidChangeVisibility = this.onDidChangeBodyVisibility; @@ -56,6 +59,7 @@ export class CommentsPanel extends ViewPane { @IUriIdentityService private readonly uriIdentityService: IUriIdentityService ) { super(options, keybindingService, contextMenuService, configurationService, contextKeyService, viewDescriptorService, instantiationService, openerService, themeService, telemetryService); + this.hasCommentsContextKey = CONTEXT_KEY_HAS_COMMENTS.bindTo(contextKeyService); } public renderBody(container: HTMLElement): void { @@ -131,13 +135,10 @@ export class CommentsPanel extends ViewPane { await this.tree.setInput(this.commentsModel); } - public getActions(): IAction[] { - if (!this.collapseAllAction) { - this.collapseAllAction = new Action('vs.tree.collapse', nls.localize('collapseAll', "Collapse All"), 'collapse-all', true, () => this.tree ? new CollapseAllAction(this.tree, true).run() : Promise.resolve()); - this._register(this.collapseAllAction); + public collapseAll() { + if (this.tree) { + new CollapseAllAction(this.tree, true).run(); } - - return [this.collapseAllAction]; } public layoutBody(height: number, width: number): void { @@ -245,9 +246,7 @@ export class CommentsPanel extends ViewPane { private async refresh(): Promise { if (this.isVisible()) { - if (this.collapseAllAction) { - this.collapseAllAction.enabled = this.commentsModel.hasCommentThreads(); - } + this.hasCommentsContextKey.set(this.commentsModel.hasCommentThreads()); this.treeContainer.classList.toggle('hidden', !this.commentsModel.hasCommentThreads()); this.renderMessage(); @@ -283,3 +282,23 @@ CommandsRegistry.registerCommand({ viewsService.openView(COMMENTS_VIEW_ID, true); } }); + +registerAction2(class Collapse extends ViewAction { + constructor() { + super({ + viewId: COMMENTS_VIEW_ID, + id: 'comments.collapse', + title: nls.localize('collapseAll', "Collapse All"), + f1: false, + icon: Codicon.collapseAll, + menu: { + id: MenuId.ViewTitle, + group: 'navigation', + when: ContextKeyAndExpr.create([ContextKeyEqualsExpr.create('view', COMMENTS_VIEW_ID), CONTEXT_KEY_HAS_COMMENTS]) + } + }); + } + runInView(_accessor: ServicesAccessor, view: CommentsPanel) { + view.collapseAll(); + } +}); From e59dc77d0d2328967fb92afdcbc5fcf3ac661d3d Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 11:10:10 +0100 Subject: [PATCH 016/171] shared process - more cleanup --- .../sharedProcess/sharedProcessMain.ts | 282 +++++++++++------- src/vs/platform/log/node/loggerService.ts | 6 +- 2 files changed, 171 insertions(+), 117 deletions(-) diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 544d8286ee5..2846ac152b5 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -26,7 +26,7 @@ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { combinedAppender, NullTelemetryService, ITelemetryAppender, NullAppender } from 'vs/platform/telemetry/common/telemetryUtils'; import { resolveCommonProperties } from 'vs/platform/telemetry/node/commonProperties'; import { TelemetryAppenderChannel } from 'vs/platform/telemetry/node/telemetryIpc'; -import { TelemetryService, ITelemetryServiceConfig } from 'vs/platform/telemetry/common/telemetryService'; +import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService'; import { AppInsightsAppender } from 'vs/platform/telemetry/node/appInsightsAppender'; import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; import { ILogService, LogLevel, ILoggerService } from 'vs/platform/log/common/log'; @@ -48,7 +48,7 @@ import { IFileService } from 'vs/platform/files/common/files'; import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemProvider'; import { Schemas } from 'vs/base/common/network'; import { IProductService } from 'vs/platform/product/common/productService'; -import { IUserDataSyncService, IUserDataSyncStoreService, registerConfiguration, IUserDataSyncLogService, IUserDataSyncUtilService, IUserDataSyncResourceEnablementService, IUserDataSyncBackupStoreService, IUserDataSyncStoreManagementService, IUserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSync'; +import { IUserDataSyncService, IUserDataSyncStoreService, registerConfiguration as registerUserDataSyncConfiguration, IUserDataSyncLogService, IUserDataSyncUtilService, IUserDataSyncResourceEnablementService, IUserDataSyncBackupStoreService, IUserDataSyncStoreManagementService, IUserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSync'; import { UserDataSyncService } from 'vs/platform/userDataSync/common/userDataSyncService'; import { UserDataSyncStoreService, UserDataSyncStoreManagementService } from 'vs/platform/userDataSync/common/userDataSyncStoreService'; import { UserDataSyncChannel, UserDataSyncUtilServiceClient, UserDataAutoSyncChannel, UserDataSyncMachinesServiceChannel, UserDataSyncAccountServiceChannel, UserDataSyncStoreManagementServiceChannel } from 'vs/platform/userDataSync/common/userDataSyncIpc'; @@ -72,8 +72,9 @@ import { TelemetryLogAppender } from 'vs/platform/telemetry/common/telemetryLogA import { UserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/common/userDataAutoSyncService'; import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService } from 'vs/platform/userDataSync/common/ignoredExtensions'; import { ExtensionsStorageSyncService, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; +import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -export interface ISharedProcessConfiguration { +interface ISharedProcessConfiguration { readonly machineId: string; readonly windowId: number; } @@ -86,8 +87,6 @@ interface ISharedProcessInitData { backupWorkspacesPath: string; } -const eventPrefix = 'monacoworkbench'; - class MainProcessService implements IMainProcessService { declare readonly _serviceBrand: undefined; @@ -108,164 +107,219 @@ class MainProcessService implements IMainProcessService { class SharedProcessMain extends Disposable { - async init(server: NodeIPCServer, initData: ISharedProcessInitData, configuration: ISharedProcessConfiguration): Promise { - const services = new ServiceCollection(); + constructor(private server: NodeIPCServer, private initData: ISharedProcessInitData, private configuration: ISharedProcessConfiguration) { + super(); + this._register(this.server); + + this.registerListeners(); + } + + private registerListeners(): void { + + // Dispose on exit const onExit = () => this.dispose(); process.once('exit', onExit); ipcRenderer.once('vscode:electron-main->shared-process=exit', onExit); + } - this._register(server); + async open(): Promise { - const environmentService = new NativeEnvironmentService(initData.args); + // Services + const instantiationService = await this.initServices(); + // Config + registerUserDataSyncConfiguration(); + + instantiationService.invokeFunction(accessor => { + + // Log info + accessor.get(ILogService).info('sharedProcess main', JSON.stringify(this.configuration)); + + // Channels + this.initChannels(accessor); + + // Clean-up deprecated extensions + const extensionManagementService = this._register((accessor.get(IExtensionManagementService) as ExtensionManagementService)); + extensionManagementService.removeDeprecatedExtensions(); + + // Update localizations cache + (accessor.get(ILocalizationsService) as LocalizationsService).update(); + }); + + // Instantiate Clean-up helpers + this._register(combinedDisposable( + new NodeCachedDataCleaner(this.initData.nodeCachedDataDir), + instantiationService.createInstance(LanguagePackCachedDataCleaner), + instantiationService.createInstance(StorageDataCleaner, this.initData.backupWorkspacesPath), + instantiationService.createInstance(LogsDataCleaner) + )); + } + + private async initServices(): Promise { + const services = new ServiceCollection(); + + // Environment + const environmentService = new NativeEnvironmentService(this.initData.args); + services.set(IEnvironmentService, environmentService); + services.set(INativeEnvironmentService, environmentService); + + // Log const mainRouter = new StaticRouter(ctx => ctx === 'main'); - const loggerClient = new LoggerChannelClient(server.getChannel('logger', mainRouter)); - const logService = this._register(new FollowerLogService(loggerClient, new SpdLogService('sharedprocess', environmentService.logsPath, initData.logLevel))); - logService.info('main', JSON.stringify(configuration)); + const loggerClient = new LoggerChannelClient(this.server.getChannel('logger', mainRouter)); + const logService = this._register(new FollowerLogService(loggerClient, new SpdLogService('sharedprocess', environmentService.logsPath, this.initData.logLevel))); + services.set(ILogService, logService); - const mainProcessService = new MainProcessService(server, mainRouter); + // Main Process + const mainProcessService = new MainProcessService(this.server, mainRouter); services.set(IMainProcessService, mainProcessService); // Files const fileService = this._register(new FileService(logService)); services.set(IFileService, fileService); + const diskFileSystemProvider = this._register(new DiskFileSystemProvider(logService)); fileService.registerProvider(Schemas.file, diskFileSystemProvider); // Configuration const configurationService = this._register(new ConfigurationService(environmentService.settingsResource, fileService)); + services.set(IConfigurationService, configurationService); + await configurationService.initialize(); // Storage const storageService = new NativeStorageService(new GlobalStorageDatabaseChannelClient(mainProcessService.getChannel('storage')), logService, environmentService); - await storageService.initialize(); services.set(IStorageService, storageService); + + await storageService.initialize(); this._register(toDisposable(() => storageService.flush())); - services.set(IEnvironmentService, environmentService); - services.set(INativeEnvironmentService, environmentService); - + // Product services.set(IProductService, { _serviceBrand: undefined, ...product }); - services.set(ILogService, logService); - services.set(IConfigurationService, configurationService); - services.set(IRequestService, new SyncDescriptor(RequestService)); - services.set(ILoggerService, new SyncDescriptor(LoggerService)); - const nativeHostService = createChannelSender(mainProcessService.getChannel('nativeHost'), { context: configuration.windowId }); + // Request + services.set(IRequestService, new SyncDescriptor(RequestService)); + + // Native Host + const nativeHostService = createChannelSender(mainProcessService.getChannel('nativeHost'), { context: this.configuration.windowId }); services.set(INativeHostService, nativeHostService); + + // Download + services.set(IDownloadService, new SyncDescriptor(DownloadService)); + + // Extension recommendations const activeWindowManager = new ActiveWindowManager(nativeHostService); const activeWindowRouter = new StaticRouter(ctx => activeWindowManager.getActiveClientId().then(id => ctx === id)); + services.set(IExtensionRecommendationNotificationService, new ExtensionRecommendationNotificationServiceChannelClient(this.server.getChannel('IExtensionRecommendationNotificationService', activeWindowRouter))); - services.set(IDownloadService, new SyncDescriptor(DownloadService)); - services.set(IExtensionRecommendationNotificationService, new ExtensionRecommendationNotificationServiceChannelClient(server.getChannel('IExtensionRecommendationNotificationService', activeWindowRouter))); + // Logger + const loggerService = new LoggerService(logService, fileService); + services.set(ILoggerService, loggerService); - const instantiationService = new InstantiationService(services); + // Telemetry + const { appRoot, extensionsPath, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService; let telemetryService: ITelemetryService; - instantiationService.invokeFunction(accessor => { - const services = new ServiceCollection(); - const { appRoot, extensionsPath, extensionDevelopmentLocationURI, isBuilt, installSourcePath } = environmentService; + let telemetryAppender: ITelemetryAppender; + if (!extensionDevelopmentLocationURI && !environmentService.disableTelemetry && product.enableTelemetry) { + telemetryAppender = new TelemetryLogAppender(loggerService, environmentService); - let telemetryAppender: ITelemetryAppender = NullAppender; - if (!extensionDevelopmentLocationURI && !environmentService.disableTelemetry && product.enableTelemetry) { - telemetryAppender = new TelemetryLogAppender(accessor.get(ILoggerService), environmentService); - if (product.aiConfig && product.aiConfig.asimovKey && isBuilt) { - const appInsightsAppender = new AppInsightsAppender(eventPrefix, null, product.aiConfig.asimovKey); - this._register(toDisposable(() => appInsightsAppender!.flush())); // Ensure the AI appender is disposed so that it flushes remaining data - telemetryAppender = combinedAppender(appInsightsAppender, telemetryAppender); - } - const config: ITelemetryServiceConfig = { - appender: telemetryAppender, - commonProperties: resolveCommonProperties(product.commit, product.version, configuration.machineId, product.msftInternalDomains, installSourcePath), - sendErrorTelemetry: true, - piiPaths: [appRoot, extensionsPath] - }; - - telemetryService = new TelemetryService(config, configurationService); - services.set(ITelemetryService, telemetryService); - } else { - telemetryService = NullTelemetryService; - services.set(ITelemetryService, NullTelemetryService); + // Application Insights + if (product.aiConfig && product.aiConfig.asimovKey && isBuilt) { + const appInsightsAppender = new AppInsightsAppender('monacoworkbench', null, product.aiConfig.asimovKey); + this._register(toDisposable(() => appInsightsAppender.flush())); // Ensure the AI appender is disposed so that it flushes remaining data + telemetryAppender = combinedAppender(appInsightsAppender, telemetryAppender); } - server.registerChannel('telemetryAppender', new TelemetryAppenderChannel(telemetryAppender)); - services.set(IExtensionManagementService, new SyncDescriptor(ExtensionManagementService)); - services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService)); - services.set(ILocalizationsService, new SyncDescriptor(LocalizationsService)); - services.set(IDiagnosticsService, new SyncDescriptor(DiagnosticsService)); - services.set(IExtensionTipsService, new SyncDescriptor(ExtensionTipsService)); + telemetryService = new TelemetryService({ + appender: telemetryAppender, + commonProperties: resolveCommonProperties(product.commit, product.version, this.configuration.machineId, product.msftInternalDomains, installSourcePath), + sendErrorTelemetry: true, + piiPaths: [appRoot, extensionsPath] + }, configurationService); + } else { + telemetryService = NullTelemetryService; + telemetryAppender = NullAppender; + } - services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService)); - services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService)); - services.set(IUserDataSyncUtilService, new UserDataSyncUtilServiceClient(server.getChannel('userDataSyncUtil', client => client.ctx !== 'main'))); - services.set(IGlobalExtensionEnablementService, new SyncDescriptor(GlobalExtensionEnablementService)); - services.set(IIgnoredExtensionsManagementService, new SyncDescriptor(IgnoredExtensionsManagementService)); - services.set(IExtensionsStorageSyncService, new SyncDescriptor(ExtensionsStorageSyncService)); - services.set(IUserDataSyncStoreManagementService, new SyncDescriptor(UserDataSyncStoreManagementService)); - services.set(IUserDataSyncStoreService, new SyncDescriptor(UserDataSyncStoreService)); - services.set(IUserDataSyncMachinesService, new SyncDescriptor(UserDataSyncMachinesService)); - services.set(IUserDataSyncBackupStoreService, new SyncDescriptor(UserDataSyncBackupStoreService)); - services.set(IUserDataAutoSyncEnablementService, new SyncDescriptor(UserDataAutoSyncEnablementService)); - services.set(IUserDataSyncResourceEnablementService, new SyncDescriptor(UserDataSyncResourceEnablementService)); - services.set(IUserDataSyncService, new SyncDescriptor(UserDataSyncService)); - registerConfiguration(); + this.server.registerChannel('telemetryAppender', new TelemetryAppenderChannel(telemetryAppender)); + services.set(ITelemetryService, telemetryService); - const instantiationService2 = instantiationService.createChild(services); + // Extension Management + services.set(IExtensionManagementService, new SyncDescriptor(ExtensionManagementService)); - instantiationService2.invokeFunction(accessor => { + // Extension Gallery + services.set(IExtensionGalleryService, new SyncDescriptor(ExtensionGalleryService)); - const extensionManagementService = accessor.get(IExtensionManagementService); - const channel = new ExtensionManagementChannel(extensionManagementService, () => null); - server.registerChannel('extensions', channel); + // Extension Tips + services.set(IExtensionTipsService, new SyncDescriptor(ExtensionTipsService)); - const localizationsService = accessor.get(ILocalizationsService); - const localizationsChannel = createChannelReceiver(localizationsService); - server.registerChannel('localizations', localizationsChannel); + // Localizations + services.set(ILocalizationsService, new SyncDescriptor(LocalizationsService)); - const diagnosticsService = accessor.get(IDiagnosticsService); - const diagnosticsChannel = createChannelReceiver(diagnosticsService); - server.registerChannel('diagnostics', diagnosticsChannel); + // Diagnostics + services.set(IDiagnosticsService, new SyncDescriptor(DiagnosticsService)); - const extensionTipsService = accessor.get(IExtensionTipsService); - const extensionTipsChannel = new ExtensionTipsChannel(extensionTipsService); - server.registerChannel('extensionTipsService', extensionTipsChannel); + // Settings Sync + services.set(IUserDataSyncAccountService, new SyncDescriptor(UserDataSyncAccountService)); + services.set(IUserDataSyncLogService, new SyncDescriptor(UserDataSyncLogService)); + services.set(IUserDataSyncUtilService, new UserDataSyncUtilServiceClient(this.server.getChannel('userDataSyncUtil', client => client.ctx !== 'main'))); + services.set(IGlobalExtensionEnablementService, new SyncDescriptor(GlobalExtensionEnablementService)); + services.set(IIgnoredExtensionsManagementService, new SyncDescriptor(IgnoredExtensionsManagementService)); + services.set(IExtensionsStorageSyncService, new SyncDescriptor(ExtensionsStorageSyncService)); + services.set(IUserDataSyncStoreManagementService, new SyncDescriptor(UserDataSyncStoreManagementService)); + services.set(IUserDataSyncStoreService, new SyncDescriptor(UserDataSyncStoreService)); + services.set(IUserDataSyncMachinesService, new SyncDescriptor(UserDataSyncMachinesService)); + services.set(IUserDataSyncBackupStoreService, new SyncDescriptor(UserDataSyncBackupStoreService)); + services.set(IUserDataAutoSyncEnablementService, new SyncDescriptor(UserDataAutoSyncEnablementService)); + services.set(IUserDataSyncResourceEnablementService, new SyncDescriptor(UserDataSyncResourceEnablementService)); + services.set(IUserDataSyncService, new SyncDescriptor(UserDataSyncService)); - const userDataSyncMachinesService = accessor.get(IUserDataSyncMachinesService); - const userDataSyncMachineChannel = new UserDataSyncMachinesServiceChannel(userDataSyncMachinesService); - server.registerChannel('userDataSyncMachines', userDataSyncMachineChannel); + return new InstantiationService(services); + } - const authTokenService = accessor.get(IUserDataSyncAccountService); - const authTokenChannel = new UserDataSyncAccountServiceChannel(authTokenService); - server.registerChannel('userDataSyncAccount', authTokenChannel); + private initChannels(accessor: ServicesAccessor): void { - const userDataSyncStoreManagementService = accessor.get(IUserDataSyncStoreManagementService); - const userDataSyncStoreManagementChannel = new UserDataSyncStoreManagementServiceChannel(userDataSyncStoreManagementService); - server.registerChannel('userDataSyncStoreManagement', userDataSyncStoreManagementChannel); + // Extensions Management + const extensionManagementService = accessor.get(IExtensionManagementService); + const channel = new ExtensionManagementChannel(extensionManagementService, () => null); + this.server.registerChannel('extensions', channel); - const userDataSyncService = accessor.get(IUserDataSyncService); - const userDataSyncChannel = new UserDataSyncChannel(server, userDataSyncService, logService); - server.registerChannel('userDataSync', userDataSyncChannel); + // Localizations + const localizationsService = accessor.get(ILocalizationsService); + const localizationsChannel = createChannelReceiver(localizationsService); + this.server.registerChannel('localizations', localizationsChannel); - const userDataAutoSync = instantiationService2.createInstance(UserDataAutoSyncService); - const userDataAutoSyncChannel = new UserDataAutoSyncChannel(userDataAutoSync); - server.registerChannel('userDataAutoSync', userDataAutoSyncChannel); + // Diagnostics + const diagnosticsService = accessor.get(IDiagnosticsService); + const diagnosticsChannel = createChannelReceiver(diagnosticsService); + this.server.registerChannel('diagnostics', diagnosticsChannel); - // clean up deprecated extensions - (extensionManagementService as ExtensionManagementService).removeDeprecatedExtensions(); - // update localizations cache - (localizationsService as LocalizationsService).update(); - // cache clean ups - this._register(combinedDisposable( - new NodeCachedDataCleaner(initData.nodeCachedDataDir), - instantiationService2.createInstance(LanguagePackCachedDataCleaner), - instantiationService2.createInstance(StorageDataCleaner, initData.backupWorkspacesPath), - instantiationService2.createInstance(LogsDataCleaner), - userDataAutoSync - )); - this._register(extensionManagementService as ExtensionManagementService); - }); - }); + // Extension Tips + const extensionTipsService = accessor.get(IExtensionTipsService); + const extensionTipsChannel = new ExtensionTipsChannel(extensionTipsService); + this.server.registerChannel('extensionTipsService', extensionTipsChannel); + + // Settings Sync + const userDataSyncMachinesService = accessor.get(IUserDataSyncMachinesService); + const userDataSyncMachineChannel = new UserDataSyncMachinesServiceChannel(userDataSyncMachinesService); + this.server.registerChannel('userDataSyncMachines', userDataSyncMachineChannel); + + const authTokenService = accessor.get(IUserDataSyncAccountService); + const authTokenChannel = new UserDataSyncAccountServiceChannel(authTokenService); + this.server.registerChannel('userDataSyncAccount', authTokenChannel); + + const userDataSyncStoreManagementService = accessor.get(IUserDataSyncStoreManagementService); + const userDataSyncStoreManagementChannel = new UserDataSyncStoreManagementServiceChannel(userDataSyncStoreManagementService); + this.server.registerChannel('userDataSyncStoreManagement', userDataSyncStoreManagementChannel); + + const userDataSyncService = accessor.get(IUserDataSyncService); + const userDataSyncChannel = new UserDataSyncChannel(this.server, userDataSyncService, accessor.get(ILogService)); + this.server.registerChannel('userDataSync', userDataSyncChannel); + + const userDataAutoSync = this._register(accessor.get(IInstantiationService).createInstance(UserDataAutoSyncService)); + const userDataAutoSyncChannel = new UserDataAutoSyncChannel(userDataAutoSync); + this.server.registerChannel('userDataAutoSync', userDataAutoSyncChannel); } } @@ -318,7 +372,7 @@ export async function main(configuration: ISharedProcessConfiguration): Promise< ipcRenderer.send('vscode:shared-process->electron-main=ipc-ready'); // await initialization and signal this back to electron-main - const sharedProcess = new SharedProcessMain(); - await sharedProcess.init(server, initData, configuration); + const sharedProcess = new SharedProcessMain(server, initData, configuration); + await sharedProcess.open(); ipcRenderer.send('vscode:shared-process->electron-main=init-done'); } diff --git a/src/vs/platform/log/node/loggerService.ts b/src/vs/platform/log/node/loggerService.ts index 7120d99d213..49fe8ad4579 100644 --- a/src/vs/platform/log/node/loggerService.ts +++ b/src/vs/platform/log/node/loggerService.ts @@ -9,8 +9,8 @@ import { URI } from 'vs/base/common/uri'; import { basename, extname, dirname } from 'vs/base/common/resources'; import { Schemas } from 'vs/base/common/network'; import { FileLogService } from 'vs/platform/log/common/fileLogService'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { SpdLogService } from 'vs/platform/log/node/spdlogService'; +import { IFileService } from 'vs/platform/files/common/files'; export class LoggerService extends Disposable implements ILoggerService { @@ -20,7 +20,7 @@ export class LoggerService extends Disposable implements ILoggerService { constructor( @ILogService private logService: ILogService, - @IInstantiationService private instantiationService: IInstantiationService, + @IFileService private fileService: IFileService ) { super(); this._register(logService.onDidChangeLogLevel(level => this.loggers.forEach(logger => logger.setLevel(level)))); @@ -34,7 +34,7 @@ export class LoggerService extends Disposable implements ILoggerService { const ext = extname(resource); logger = new SpdLogService(baseName.substring(0, baseName.length - ext.length), dirname(resource).fsPath, this.logService.getLevel()); } else { - logger = this.instantiationService.createInstance(FileLogService, basename(resource), resource, this.logService.getLevel()); + logger = new FileLogService(basename(resource), resource, this.logService.getLevel(), this.fileService); } this.loggers.set(resource.toString(), logger); } From 5db4708e99dc410fd1c092b0ea5b666b2be71b84 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 11:38:12 +0100 Subject: [PATCH 017/171] shared process - avoid payload IPC roundtrip and enable console based logger --- .../sharedProcess/sharedProcess.js | 5 +- .../sharedProcess/sharedProcessMain.ts | 47 ++++++------------- src/vs/code/electron-main/sharedProcess.ts | 35 ++++++-------- .../sharedProcess/node/sharedProcess.ts | 25 ++++++++++ .../log/electron-browser/logService.ts | 2 +- 5 files changed, 56 insertions(+), 58 deletions(-) create mode 100644 src/vs/platform/sharedProcess/node/sharedProcess.ts diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcess.js b/src/vs/code/electron-browser/sharedProcess/sharedProcess.js index d3315d0a073..2bb0a0bb730 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcess.js +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcess.js @@ -15,10 +15,7 @@ // Load shared process into window bootstrapWindow.load(['vs/code/electron-browser/sharedProcess/sharedProcessMain'], function (sharedProcess, configuration) { - return sharedProcess.main({ - machineId: configuration.machineId, - windowId: configuration.windowId - }); + return sharedProcess.main(configuration); }); diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 2846ac152b5..a65090daa1d 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -12,7 +12,6 @@ import { ServiceCollection } from 'vs/platform/instantiation/common/serviceColle import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; import { IEnvironmentService, INativeEnvironmentService } from 'vs/platform/environment/common/environment'; -import { NativeParsedArgs } from 'vs/platform/environment/common/argv'; import { NativeEnvironmentService } from 'vs/platform/environment/node/environmentService'; import { ExtensionManagementChannel, ExtensionTipsChannel } from 'vs/platform/extensionManagement/common/extensionManagementIpc'; import { IExtensionManagementService, IExtensionGalleryService, IGlobalExtensionEnablementService, IExtensionTipsService } from 'vs/platform/extensionManagement/common/extensionManagement'; @@ -29,7 +28,7 @@ import { TelemetryAppenderChannel } from 'vs/platform/telemetry/node/telemetryIp import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService'; import { AppInsightsAppender } from 'vs/platform/telemetry/node/appInsightsAppender'; import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; -import { ILogService, LogLevel, ILoggerService } from 'vs/platform/log/common/log'; +import { ILogService, ILoggerService, MultiplexLogService, ConsoleLogService } from 'vs/platform/log/common/log'; import { LoggerChannelClient, FollowerLogService } from 'vs/platform/log/common/logIpc'; import { LocalizationsService } from 'vs/platform/localizations/node/localizations'; import { ILocalizationsService } from 'vs/platform/localizations/common/localizations'; @@ -73,19 +72,7 @@ import { UserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/comm import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService } from 'vs/platform/userDataSync/common/ignoredExtensions'; import { ExtensionsStorageSyncService, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; - -interface ISharedProcessConfiguration { - readonly machineId: string; - readonly windowId: number; -} - -interface ISharedProcessInitData { - sharedIPCHandle: string; - args: NativeParsedArgs; - logLevel: LogLevel; - nodeCachedDataDir?: string; - backupWorkspacesPath: string; -} +import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; class MainProcessService implements IMainProcessService { @@ -107,7 +94,7 @@ class MainProcessService implements IMainProcessService { class SharedProcessMain extends Disposable { - constructor(private server: NodeIPCServer, private initData: ISharedProcessInitData, private configuration: ISharedProcessConfiguration) { + constructor(private server: NodeIPCServer, private configuration: ISharedProcessConfiguration) { super(); this._register(this.server); @@ -134,7 +121,7 @@ class SharedProcessMain extends Disposable { instantiationService.invokeFunction(accessor => { // Log info - accessor.get(ILogService).info('sharedProcess main', JSON.stringify(this.configuration)); + accessor.get(ILogService).trace('sharedProcess configuration', JSON.stringify(this.configuration)); // Channels this.initChannels(accessor); @@ -149,9 +136,9 @@ class SharedProcessMain extends Disposable { // Instantiate Clean-up helpers this._register(combinedDisposable( - new NodeCachedDataCleaner(this.initData.nodeCachedDataDir), + new NodeCachedDataCleaner(this.configuration.nodeCachedDataDir), instantiationService.createInstance(LanguagePackCachedDataCleaner), - instantiationService.createInstance(StorageDataCleaner, this.initData.backupWorkspacesPath), + instantiationService.createInstance(StorageDataCleaner, this.configuration.backupWorkspacesPath), instantiationService.createInstance(LogsDataCleaner) )); } @@ -160,14 +147,18 @@ class SharedProcessMain extends Disposable { const services = new ServiceCollection(); // Environment - const environmentService = new NativeEnvironmentService(this.initData.args); + const environmentService = new NativeEnvironmentService(this.configuration.args); services.set(IEnvironmentService, environmentService); services.set(INativeEnvironmentService, environmentService); // Log const mainRouter = new StaticRouter(ctx => ctx === 'main'); const loggerClient = new LoggerChannelClient(this.server.getChannel('logger', mainRouter)); - const logService = this._register(new FollowerLogService(loggerClient, new SpdLogService('sharedprocess', environmentService.logsPath, this.initData.logLevel))); + const multiplexLogger = this._register(new MultiplexLogService([ + this._register(new ConsoleLogService(this.configuration.logLevel)), + this._register(new SpdLogService('sharedprocess', environmentService.logsPath, this.configuration.logLevel)) + ])); + const logService = this._register(new FollowerLogService(loggerClient, multiplexLogger)); services.set(ILogService, logService); // Main Process @@ -323,7 +314,7 @@ class SharedProcessMain extends Disposable { } } -function setupIPC(hook: string): Promise { +function setupNodeIPC(hook: string): Promise { function setup(retry: boolean): Promise { return nodeIPCServe(hook).then(null, err => { if (!retry || isWindows || err.code !== 'EADDRINUSE') { @@ -359,20 +350,12 @@ function setupIPC(hook: string): Promise { export async function main(configuration: ISharedProcessConfiguration): Promise { - // receive payload from electron-main to start things - const initData = await new Promise(resolve => { - ipcRenderer.once('vscode:electron-main->shared-process=payload', (event: unknown, r: ISharedProcessInitData) => resolve(r)); - - // tell electron-main we are ready to receive payload - ipcRenderer.send('vscode:shared-process->electron-main=ready-for-payload'); - }); - // await IPC connection and signal this back to electron-main - const server = await setupIPC(initData.sharedIPCHandle); + const server = await setupNodeIPC(configuration.sharedIPCHandle); ipcRenderer.send('vscode:shared-process->electron-main=ipc-ready'); // await initialization and signal this back to electron-main - const sharedProcess = new SharedProcessMain(server, initData, configuration); + const sharedProcess = new SharedProcessMain(server, configuration); await sharedProcess.open(); ipcRenderer.send('vscode:shared-process->electron-main=init-done'); } diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index a065048ca5f..8548e85e92b 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -5,16 +5,16 @@ import { memoize } from 'vs/base/common/decorators'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; -import { BrowserWindow, ipcMain, WebContents, Event as ElectronEvent } from 'electron'; +import { BrowserWindow, ipcMain, Event } from 'electron'; import { ISharedProcess } from 'vs/platform/ipc/electron-main/sharedProcessMainService'; import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService'; import { toDisposable, DisposableStore } from 'vs/base/common/lifecycle'; -import { Event } from 'vs/base/common/event'; import { FileAccess } from 'vs/base/common/network'; import { browserCodeLoadingCacheStrategy } from 'vs/base/common/platform'; +import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; export class SharedProcess implements ISharedProcess { @@ -54,12 +54,16 @@ export class SharedProcess implements ISharedProcess { } }); - const config = { - appRoot: this.environmentService.appRoot, + const config: ISharedProcessConfiguration = { machineId: this.machineId, + windowId: this.window.id, + appRoot: this.environmentService.appRoot, nodeCachedDataDir: this.environmentService.nodeCachedDataDir, + backupWorkspacesPath: this.environmentService.backupWorkspacesPath, userEnv: this.userEnv, - windowId: this.window.id + sharedIPCHandle: this.environmentService.sharedIPCHandle, + args: this.environmentService.args, + logLevel: this.logService.getLevel() }; this.window.loadURL(FileAccess @@ -69,7 +73,7 @@ export class SharedProcess implements ISharedProcess { ); // Prevent the window from dying - const onClose = (e: ElectronEvent) => { + const onClose = (e: Event) => { this.logService.trace('SharedProcess#close prevented'); // We never allow to close the shared process unless we get explicitly disposed() @@ -114,22 +118,11 @@ export class SharedProcess implements ISharedProcess { return new Promise(resolve => { - // send payload once shared process is ready to receive it - disposables.add(Event.once(Event.fromNodeEventEmitter(ipcMain, 'vscode:shared-process->electron-main=ready-for-payload', ({ sender }: { sender: WebContents }) => sender))(sender => { - sender.send('vscode:electron-main->shared-process=payload', { - sharedIPCHandle: this.environmentService.sharedIPCHandle, - args: this.environmentService.args, - logLevel: this.logService.getLevel(), - backupWorkspacesPath: this.environmentService.backupWorkspacesPath, - nodeCachedDataDir: this.environmentService.nodeCachedDataDir - }); + // signal exit to shared process when we get disposed + disposables.add(toDisposable(() => this.window?.webContents.send('vscode:electron-main->shared-process=exit'))); - // signal exit to shared process when we get disposed - disposables.add(toDisposable(() => sender.send('vscode:electron-main->shared-process=exit'))); - - // complete IPC-ready promise when shared process signals this to us - ipcMain.once('vscode:shared-process->electron-main=ipc-ready', () => resolve(undefined)); - })); + // complete IPC-ready promise when shared process signals this to us + ipcMain.once('vscode:shared-process->electron-main=ipc-ready', () => resolve(undefined)); }); } diff --git a/src/vs/platform/sharedProcess/node/sharedProcess.ts b/src/vs/platform/sharedProcess/node/sharedProcess.ts new file mode 100644 index 00000000000..167e1bcbcba --- /dev/null +++ b/src/vs/platform/sharedProcess/node/sharedProcess.ts @@ -0,0 +1,25 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { NativeParsedArgs } from 'vs/platform/environment/common/argv'; +import { LogLevel } from 'vs/platform/log/common/log'; + +export interface ISharedProcessConfiguration { + readonly machineId: string; + readonly windowId: number; + + readonly appRoot: string; + + readonly userEnv: NodeJS.ProcessEnv; + + readonly sharedIPCHandle: string; + + readonly args: NativeParsedArgs; + + readonly logLevel: LogLevel; + + readonly nodeCachedDataDir?: string; + readonly backupWorkspacesPath: string; +} diff --git a/src/vs/workbench/services/log/electron-browser/logService.ts b/src/vs/workbench/services/log/electron-browser/logService.ts index c230f8920bf..7169b6cf7d1 100644 --- a/src/vs/workbench/services/log/electron-browser/logService.ts +++ b/src/vs/workbench/services/log/electron-browser/logService.ts @@ -39,7 +39,7 @@ export class NativeLogService extends DelegatedLogService { bufferSpdLogService = disposables.add(new BufferLogService(environmentService.configuration.logLevel)); loggers.push( disposables.add(new ConsoleLogService(environmentService.configuration.logLevel)), - bufferSpdLogService, + bufferSpdLogService ); } From 75ea87a26369905ddef4c38598af75481dcfc908 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 11:46:27 +0100 Subject: [PATCH 018/171] shared process - introduce platform/sharedprocess --- src/vs/code/electron-main/app.ts | 2 +- src/vs/code/electron-main/sharedProcess.ts | 2 +- .../electron-browser/sharedProcessService.ts | 0 .../electron-main/sharedProcessMainService.ts | 0 .../extensions/electron-browser/extensions.contribution.ts | 2 +- .../electron-browser/extensionRecommendationsService.test.ts | 2 +- .../extensions/test/electron-browser/extensionsActions.test.ts | 2 +- .../extensions/test/electron-browser/extensionsViews.test.ts | 2 +- .../test/electron-browser/extensionsWorkbenchService.test.ts | 2 +- .../userDataSync/electron-browser/userDataSync.contribution.ts | 2 +- src/vs/workbench/electron-browser/actions/developerActions.ts | 2 +- .../services/diagnostics/electron-browser/diagnosticsService.ts | 2 +- .../electron-browser/extensionManagementServerService.ts | 2 +- .../electron-browser/extensionTipsService.ts | 2 +- .../localizations/electron-browser/localizationsService.ts | 2 +- .../sharedProcess/electron-browser/sharedProcessService.ts | 2 +- .../services/telemetry/electron-browser/telemetryService.ts | 2 +- .../userDataSync/electron-browser/userDataAutoSyncService.ts | 2 +- .../userDataSync/electron-browser/userDataSyncAccountService.ts | 2 +- .../electron-browser/userDataSyncMachinesService.ts | 2 +- .../userDataSync/electron-browser/userDataSyncService.ts | 2 +- .../electron-browser/userDataSyncStoreManagementService.ts | 2 +- src/vs/workbench/test/electron-browser/workbenchTestServices.ts | 2 +- 23 files changed, 21 insertions(+), 21 deletions(-) rename src/vs/platform/{ipc => sharedProcess}/electron-browser/sharedProcessService.ts (100%) rename src/vs/platform/{ipc => sharedProcess}/electron-main/sharedProcessMainService.ts (100%) diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 4f7c694384b..07b56c050aa 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -68,7 +68,7 @@ import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsSer import { ExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/common/extensionHostDebugIpc'; import { ElectronExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/electron-main/extensionHostDebugIpc'; import { INativeHostMainService, NativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; -import { ISharedProcessMainService, SharedProcessMainService } from 'vs/platform/ipc/electron-main/sharedProcessMainService'; +import { ISharedProcessMainService, SharedProcessMainService } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; import { IDialogMainService, DialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; import { withNullAsUndefined } from 'vs/base/common/types'; import { mnemonicButtonLabel, getPathLabel } from 'vs/base/common/labels'; diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 8548e85e92b..5ee9e5d4f81 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -6,7 +6,7 @@ import { memoize } from 'vs/base/common/decorators'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; import { BrowserWindow, ipcMain, Event } from 'electron'; -import { ISharedProcess } from 'vs/platform/ipc/electron-main/sharedProcessMainService'; +import { ISharedProcess } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; diff --git a/src/vs/platform/ipc/electron-browser/sharedProcessService.ts b/src/vs/platform/sharedProcess/electron-browser/sharedProcessService.ts similarity index 100% rename from src/vs/platform/ipc/electron-browser/sharedProcessService.ts rename to src/vs/platform/sharedProcess/electron-browser/sharedProcessService.ts diff --git a/src/vs/platform/ipc/electron-main/sharedProcessMainService.ts b/src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts similarity index 100% rename from src/vs/platform/ipc/electron-main/sharedProcessMainService.ts rename to src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts index a472654f086..e1349a608a4 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts @@ -25,7 +25,7 @@ import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/enviro import { OpenExtensionsFolderAction } from 'vs/workbench/contrib/extensions/electron-sandbox/extensionsActions'; import { ExtensionsLabel } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IExtensionRecommendationNotificationService } from 'vs/platform/extensionRecommendations/common/extensionRecommendations'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { ExtensionRecommendationNotificationServiceChannel } from 'vs/platform/extensionRecommendations/electron-sandbox/extensionRecommendationsIpc'; import { Codicon } from 'vs/base/common/codicons'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts index ed1a42f764b..7caa2164cc2 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts @@ -44,7 +44,7 @@ import { IExperimentService } from 'vs/workbench/contrib/experiments/common/expe import { TestExperimentService } from 'vs/workbench/contrib/experiments/test/electron-browser/experimentService.test'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; import { ExtensionType } from 'vs/platform/extensions/common/extensions'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { FileService } from 'vs/platform/files/common/fileService'; import { NullLogService, ILogService } from 'vs/platform/log/common/log'; import { Schemas } from 'vs/base/common/network'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts index 6297b551409..4a69d859efa 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts @@ -35,7 +35,7 @@ import { TestConfigurationService } from 'vs/platform/configuration/test/common/ import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; import { ExtensionIdentifier, IExtensionContributions, ExtensionType, IExtensionDescription, IExtension } from 'vs/platform/extensions/common/extensions'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { CancellationToken } from 'vs/base/common/cancellation'; import { ILabelService, IFormatterChangeEvent } from 'vs/platform/label/common/label'; import { IProductService } from 'vs/platform/product/common/productService'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts index e643b2dbed0..51e4ffddd00 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts @@ -37,7 +37,7 @@ import { IExperimentService, ExperimentState, ExperimentActionType, ExperimentSe import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; import { ExtensionType, IExtension, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { MockContextKeyService } from 'vs/platform/keybinding/test/common/mockKeybindingService'; import { IMenuService } from 'vs/platform/actions/common/actions'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts index e73daad5a26..5bad80409b2 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts @@ -37,7 +37,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; import { ExtensionType, IExtension, ExtensionKind } from 'vs/platform/extensions/common/extensions'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; import { IProductService } from 'vs/platform/product/common/productService'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; diff --git a/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts b/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts index 098549a7b60..df2b5d5f223 100644 --- a/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts +++ b/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts @@ -7,7 +7,7 @@ import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWo import { IUserDataSyncUtilService, SyncStatus, UserDataSyncError, UserDataSyncErrorCode, IUserDataAutoSyncService } from 'vs/platform/userDataSync/common/userDataSync'; import { Registry } from 'vs/platform/registry/common/platform'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { UserDataSycnUtilServiceChannel } from 'vs/platform/userDataSync/common/userDataSyncIpc'; import { registerAction2, Action2, MenuId } from 'vs/platform/actions/common/actions'; import { localize } from 'vs/nls'; diff --git a/src/vs/workbench/electron-browser/actions/developerActions.ts b/src/vs/workbench/electron-browser/actions/developerActions.ts index c699748e2b2..64aa83d1d24 100644 --- a/src/vs/workbench/electron-browser/actions/developerActions.ts +++ b/src/vs/workbench/electron-browser/actions/developerActions.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as nls from 'vs/nls'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { CATEGORIES } from 'vs/workbench/common/actions'; diff --git a/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts b/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts index 0b5428fc855..3315adc1771 100644 --- a/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts +++ b/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { createChannelSender } from 'vs/base/parts/ipc/common/ipc'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsService'; diff --git a/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts b/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts index 8b217320088..246fabe4158 100644 --- a/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts +++ b/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts @@ -9,7 +9,7 @@ import { IExtensionManagementServer, IExtensionManagementServerService } from 'v import { ExtensionManagementChannelClient } from 'vs/platform/extensionManagement/common/extensionManagementIpc'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { NativeRemoteExtensionManagementService } from 'vs/workbench/services/extensionManagement/electron-sandbox/remoteExtensionManagementService'; import { ILabelService } from 'vs/platform/label/common/label'; diff --git a/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts b/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts index a494d0d7a0b..269aa16aac6 100644 --- a/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts +++ b/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { IExtensionTipsService, IExecutableBasedExtensionTip, IWorkspaceTips, IConfigBasedExtensionTip } from 'vs/platform/extensionManagement/common/extensionManagement'; import { URI } from 'vs/base/common/uri'; diff --git a/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts b/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts index d7aefde89c7..40dec2973ea 100644 --- a/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts +++ b/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts @@ -5,7 +5,7 @@ import { createChannelSender } from 'vs/base/parts/ipc/common/ipc'; import { ILocalizationsService } from 'vs/platform/localizations/common/localizations'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; // @ts-ignore: interface is implemented via proxy diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts index 1631e321e16..95be518ea2d 100644 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts @@ -7,7 +7,7 @@ import { Client as NodeIPCClient } from 'vs/base/parts/ipc/common/ipc.net'; import { connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; import { IChannel, IServerChannel, getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; diff --git a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts index acabe9e4dc5..49141c533b1 100644 --- a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts +++ b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts @@ -9,7 +9,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { Disposable } from 'vs/base/common/lifecycle'; import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { IProductService } from 'vs/platform/product/common/productService'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/electron-browser/workbenchCommonProperties'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts index 7e381a0446b..680ed762484 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IUserDataAutoSyncService, UserDataSyncError } from 'vs/platform/userDataSync/common/userDataSync'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { Event } from 'vs/base/common/event'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts index 4be8abf9893..2b8d98553fc 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IChannel } from 'vs/base/parts/ipc/common/ipc'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { Disposable } from 'vs/base/common/lifecycle'; import { Event, Emitter } from 'vs/base/common/event'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts index 44dbc9e85e1..058bb47bd79 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { Disposable } from 'vs/base/common/lifecycle'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts index b4729eccf2e..46c9d696ffd 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { SyncStatus, SyncResource, IUserDataSyncService, UserDataSyncError, ISyncResourceHandle, ISyncTask, IManualSyncTask, IUserDataManifest, ISyncResourcePreview, IResourcePreview } from 'vs/platform/userDataSync/common/userDataSync'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { Disposable } from 'vs/base/common/lifecycle'; import { Emitter, Event } from 'vs/base/common/event'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts index 7b2e238f684..cae006e56b9 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IUserDataSyncStoreManagementService, UserDataSyncStoreType, IUserDataSyncStore } from 'vs/platform/userDataSync/common/userDataSync'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { AbstractUserDataSyncStoreManagementService } from 'vs/platform/userDataSync/common/userDataSyncStoreService'; diff --git a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts index 54a44c2fc4a..e2c42287545 100644 --- a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts @@ -5,7 +5,7 @@ import { workbenchInstantiationService as browserWorkbenchInstantiationService, ITestInstantiationService, TestLifecycleService, TestFilesConfigurationService, TestFileService, TestFileDialogService, TestPathService, TestEncodingOracle, TestProductService } from 'vs/workbench/test/browser/workbenchTestServices'; import { Event } from 'vs/base/common/event'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService'; import { NativeTextFileService, } from 'vs/workbench/services/textfile/electron-browser/nativeTextFileService'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; From 9266fc49839267003d3bab1e5be351920ba85880 Mon Sep 17 00:00:00 2001 From: gjsjohnmurray Date: Wed, 13 Jan 2021 11:40:47 +0000 Subject: [PATCH 019/171] mock a label service to avoid breaking layers in tests --- .../snippet/test/snippetVariables.test.ts | 28 ++++++++----------- 1 file changed, 11 insertions(+), 17 deletions(-) diff --git a/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts b/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts index 916897ef64a..0f935238200 100644 --- a/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts +++ b/src/vs/editor/contrib/snippet/test/snippetVariables.test.ts @@ -15,12 +15,6 @@ import { mock } from 'vs/base/test/common/mock'; import { createTextModel } from 'vs/editor/test/common/editorTestUtils'; import { Workspace } from 'vs/platform/workspace/test/common/testWorkspace'; import { extUriBiasedIgnorePathCase } from 'vs/base/common/resources'; -// eslint-disable-next-line code-import-patterns -import { LabelService } from 'vs/workbench/services/label/common/labelService'; -// eslint-disable-next-line code-import-patterns -import { TestEnvironmentService, TestPathService } from 'vs/workbench/test/browser/workbenchTestServices'; -// eslint-disable-next-line code-import-patterns -import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; import { sep } from 'vs/base/common/path'; suite('Snippet Variables Resolver', function () { @@ -351,18 +345,18 @@ suite('Snippet Variables Resolver', function () { let resolver: VariableResolver; - const workspaceLabelService = ((path: string): LabelService => { - const workspace = new Workspace(path, [toWorkspaceFolder(URI.file(path))]); - const labelService = new LabelService(TestEnvironmentService, new TestContextService(workspace), new TestPathService()); - labelService.registerFormatter({ - scheme: 'file', - formatting: { - label: '${path}', - separator: sep, - tildify: !isWindows, - normalizeDriveLetter: isWindows + // Mock a label service (only coded for file uris) + const workspaceLabelService = ((rootPath: string): ILabelService => { + const labelService = new class extends mock() { + getUriLabel(uri: URI, options: { relative?: boolean } = {}) { + const rootFsPath = URI.file(rootPath).fsPath + sep; + const fsPath = uri.fsPath; + if (options.relative && rootPath && fsPath.startsWith(rootFsPath)) { + return fsPath.substring(rootFsPath.length); + } + return fsPath; } - }); + }; return labelService; }); From 36a9cb8645e7a84bbb36edeb8d5b5792b2f6a214 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Wed, 13 Jan 2021 13:40:40 +0100 Subject: [PATCH 020/171] Improve `fuzzyScore` --- src/vs/base/common/filters.ts | 290 ++++++++++--------- src/vs/base/test/common/filters.perf.test.ts | 2 +- src/vs/base/test/common/filters.test.ts | 2 +- 3 files changed, 160 insertions(+), 134 deletions(-) diff --git a/src/vs/base/common/filters.ts b/src/vs/base/common/filters.ts index bc06b654542..3024e0770c9 100644 --- a/src/vs/base/common/filters.ts +++ b/src/vs/base/common/filters.ts @@ -418,18 +418,27 @@ const _maxLen = 128; function initTable() { const table: number[][] = []; - const row: number[] = [0]; - for (let i = 1; i <= _maxLen; i++) { - row.push(-i); + const row: number[] = []; + for (let i = 0; i <= _maxLen; i++) { + row[i] = 0; } for (let i = 0; i <= _maxLen; i++) { - const thisRow = row.slice(0); - thisRow[0] = -i; - table.push(thisRow); + table.push(row.slice(0)); } return table; } +function initArr(maxLen: number) { + const row: number[] = []; + for (let i = 0; i <= maxLen; i++) { + row[i] = 0; + } + return row; +} + +const _minWordMatchPos = initArr(2 * _maxLen); // min word position for a certain pattern position +const _maxWordMatchPos = initArr(2 * _maxLen); // max word position for a certain pattern position +const _diag = initTable(); // the length of a contiguous diagonal match const _table = initTable(); const _scores = initTable(); const _arrows = initTable(); @@ -511,9 +520,13 @@ function isUpperCaseAtPos(pos: number, word: string, wordLow: string): boolean { return word[pos] !== wordLow[pos]; } -export function isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number): boolean { +export function isPatternInWord(patternLow: string, patternPos: number, patternLen: number, wordLow: string, wordPos: number, wordLen: number, fillMinWordPosArr = false): boolean { while (patternPos < patternLen && wordPos < wordLen) { if (patternLow[patternPos] === wordLow[wordPos]) { + if (fillMinWordPosArr) { + // Remember the min word position for each pattern position + _minWordMatchPos[patternPos] = wordPos; + } patternPos += 1; } wordPos += 1; @@ -521,7 +534,7 @@ export function isPatternInWord(patternLow: string, patternPos: number, patternL return patternPos === patternLen; // pattern must be exhausted } -const enum Arrow { Top = 0b1, Diag = 0b10, Left = 0b100 } +const enum Arrow { Diag = 1, Left = 2, LeftLeft = 3 } /** * A tuple of three values. @@ -558,10 +571,24 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu // Run a simple check if the characters of pattern occur // (in order) at all in word. If that isn't the case we // stop because no match will be possible - if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen)) { + if (!isPatternInWord(patternLow, patternStart, patternLen, wordLow, wordStart, wordLen, true)) { return undefined; } + // Find the max matching word position for each pattern position + // NOTE: the min matching word position was filled in above, in the `isPatternInWord` call + { + let patternPos = patternLen - 1; + let wordPos = wordLen - 1; + while (patternPos >= patternStart && wordPos >= wordStart) { + if (patternLow[patternPos] === wordLow[wordPos]) { + _maxWordMatchPos[patternPos] = wordPos; + patternPos--; + } + wordPos--; + } + } + let row: number = 1; let column: number = 1; let patternPos = patternStart; @@ -572,44 +599,80 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu // There will be a match, fill in tables for (row = 1, patternPos = patternStart; patternPos < patternLen; row++, patternPos++) { - for (column = 1, wordPos = wordStart; wordPos < wordLen; column++, wordPos++) { + // Reduce search space to possible matching word positions and to possible access from next row + const minWordMatchPos = _minWordMatchPos[patternPos]; + const maxWordMatchPos = _maxWordMatchPos[patternPos]; + const nextMaxWordMatchPos = (patternPos + 1 < patternLen ? _maxWordMatchPos[patternPos + 1] : wordLen); - const score = _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos); + for (column = minWordMatchPos - wordStart + 1, wordPos = minWordMatchPos; wordPos < nextMaxWordMatchPos; column++, wordPos++) { + + const score = (wordPos > maxWordMatchPos ? -1 : _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos)); + _scores[row][column] = score; if (patternPos === patternStart && score > 1) { hasStrongFirstMatch = true; } - _scores[row][column] = score; + const canComeDiag = (score > 0); + let diagScore = 0; + if (canComeDiag) { + diagScore = score; - const diag = _table[row - 1][column - 1] + (score > 1 ? 1 : score); - const top = _table[row - 1][column] + -1; - const left = _table[row][column - 1] + -1; + // Having a gap in the word match is penalized less if the gap occurs around natural boundaries e.g. aA, _a, .a + const isNaturalGapLocation = ( + isUpperCaseAtPos(wordPos, word, wordLow) + || isSeparatorAtPos(wordLow, wordPos - 1) + || isWhitespaceAtPos(wordLow, wordPos - 1) + ); - if (left >= top) { - // left or diag - if (left > diag) { - _table[row][column] = left; - _arrows[row][column] = Arrow.Left; - } else if (left === diag) { - _table[row][column] = left; - _arrows[row][column] = Arrow.Left | Arrow.Diag; + if (row === 1) { + // first character in pattern + if (column > 1) { + // the first pattern character would match a word character that is not at the word start + // so introduce a penalty to account for the gap preceding this match + diagScore += -5 + (isNaturalGapLocation ? 2 : 0); + } } else { - _table[row][column] = diag; - _arrows[row][column] = Arrow.Diag; + // column is guaranteed to be > 1 because we must have consumed at least one word character with the first row + diagScore += _table[row - 1][column - 1]; + if (_diag[row - 1][column - 1] === 0) { + // this would be the beginning of a new match (i.e. there would be a gap before this location) + diagScore += (isNaturalGapLocation ? 2 : 0); + } else { + // this is part of a contiguous match, so give it a slight bonus, but do so only if it would not be a prefered gap location + diagScore += (isNaturalGapLocation ? 0 : 1); + } } + + if (wordPos + 1 === wordLen) { + // we always penalize gaps, but this gives unfair advantages to a match that would match the last character in the word + // so pretend there is a gap after the last character in the word to normalize things + diagScore += -5 + (isNaturalGapLocation ? 2 : 0); + } + } + + const canComeLeft = (wordPos > minWordMatchPos); + const leftScore = (canComeLeft ? _table[row][column - 1] + (_diag[row][column - 1] > 0 ? -5 : 0) : 0); // penalty for a gap start + + const canComeLeftLeft = (wordPos > minWordMatchPos + 1 && _diag[row][column - 1] > 0); + const leftLeftScore = (canComeLeftLeft ? _table[row][column - 2] + (_diag[row][column - 2] > 0 ? -5 : 0) : 0); // penalty for a gap start + + if (canComeLeftLeft && (!canComeLeft || leftLeftScore >= leftScore) && (!canComeDiag || leftLeftScore >= diagScore)) { + // always prefer choosing left left to jump over a diagonal because that means a match is earlier in the word + _table[row][column] = leftLeftScore; + _arrows[row][column] = Arrow.LeftLeft; + _diag[row][column] = 0; + } else if (canComeLeft && (!canComeDiag || leftScore >= diagScore)) { + // always prefer choosing left since that means a match is earlier in the word + _table[row][column] = leftScore; + _arrows[row][column] = Arrow.Left; + _diag[row][column] = 0; + } else if (canComeDiag) { + _table[row][column] = diagScore; + _arrows[row][column] = Arrow.Diag; + _diag[row][column] = _diag[row - 1][column - 1] + 1; } else { - // top or diag - if (top > diag) { - _table[row][column] = top; - _arrows[row][column] = Arrow.Top; - } else if (top === diag) { - _table[row][column] = top; - _arrows[row][column] = Arrow.Top | Arrow.Diag; - } else { - _table[row][column] = diag; - _arrows[row][column] = Arrow.Diag; - } + throw new Error(`not possible`); } } } @@ -622,17 +685,68 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu return undefined; } - _matchesCount = 0; - _topScore = -100; - _wordStart = wordStart; - _firstMatchCanBeWeak = firstMatchCanBeWeak; + row--; + column--; - _findAllMatches2(row - 1, column - 1, patternLen === wordLen ? 1 : 0, 0, false); - if (_matchesCount === 0) { - return undefined; + const topScore = _table[row][column]; + let matches = 0; + let backwardsDiagLength = 0; + let maxMatchColumn = 0; + + while (row >= 1) { + // Find the column where we go diagonally up + let diagColumn = column; + do { + const arrow = _arrows[row][diagColumn]; + if (arrow === Arrow.LeftLeft) { + diagColumn = diagColumn - 2; + } else if (arrow === Arrow.Left) { + diagColumn = diagColumn - 1; + } else { + // found the diagonal + break; + } + } while (diagColumn >= 1); + + // Overturn the "forwards" decision if keeping the "backwards" diagonal would give a better match + if ( + _scores[row][column] > 0 // only if we can do a contiguous match diagonally + && backwardsDiagLength > 1 // only if we would have a contiguous match of 3 characters + && !isUpperCaseAtPos(diagColumn + wordStart - 1, word, wordLow) // only if the forwards chose diagonal is not an uppercase + && backwardsDiagLength + 1 > _diag[row][diagColumn] // only if our contiguous match would be longer than the "forwards" contiguous match + ) { + diagColumn = column; + } + + if (diagColumn === column) { + // this is a contiguous match + backwardsDiagLength++; + } else { + backwardsDiagLength = 1; + } + + if (!maxMatchColumn) { + // remember the last matched column + maxMatchColumn = diagColumn; + } + + row--; + column = diagColumn - 1; + matches += 2 ** (column + wordStart); } - return [_topScore, _topMatch2, wordStart]; + let finalScore = topScore; + if (wordLen === patternLen) { + // the word matches the pattern with all characters! + // giving the score a total match boost (to come up ahead other words) + finalScore += 2; + } + + // Add 1 penalty for each skipped character in the word + const skippedCharsCount = maxMatchColumn - patternLen; + finalScore -= skippedCharsCount; + + return [finalScore, matches, wordStart]; } function _doScore(pattern: string, patternLow: string, patternPos: number, patternStart: number, word: string, wordLow: string, wordPos: number) { @@ -670,94 +784,6 @@ function _doScore(pattern: string, patternLow: string, patternPos: number, patte } } -let _matchesCount: number = 0; -let _topMatch2: number = 0; -let _topScore: number = 0; -let _wordStart: number = 0; -let _firstMatchCanBeWeak: boolean = false; - -function _findAllMatches2(row: number, column: number, total: number, matches: number, lastMatched: boolean): void { - - if (_matchesCount >= 10 || total < -25) { - // stop when having already 10 results, or - // when a potential alignment as already 5 gaps - return; - } - - let simpleMatchCount = 0; - - while (row > 0 && column > 0) { - - const score = _scores[row][column]; - const arrow = _arrows[row][column]; - - if (arrow === Arrow.Left) { - // left -> no match, skip a word character - column -= 1; - if (lastMatched) { - total -= 5; // new gap penalty - } else if (matches !== 0) { - total -= 1; // gap penalty after first match - } - lastMatched = false; - simpleMatchCount = 0; - - } else if (arrow & Arrow.Diag) { - - if (arrow & Arrow.Left) { - // left - _findAllMatches2( - row, - column - 1, - matches !== 0 ? total - 1 : total, // gap penalty after first match - matches, - lastMatched - ); - } - - // diag - total += score; - row -= 1; - column -= 1; - lastMatched = true; - - // match -> set a 1 at the word pos - matches += 2 ** (column + _wordStart); - - // count simple matches and boost a row of - // simple matches when they yield in a - // strong match. - if (score === 1) { - simpleMatchCount += 1; - - if (row === 0 && !_firstMatchCanBeWeak) { - // when the first match is a weak - // match we discard it - return undefined; - } - - } else { - // boost - total += 1 + (simpleMatchCount * (score - 1)); - simpleMatchCount = 0; - } - - } else { - return undefined; - } - } - - total -= column >= 3 ? 9 : column * 3; // late start penalty - - // dynamically keep track of the current top score - // and insert the current best score at head, the rest at tail - _matchesCount += 1; - if (total > _topScore) { - _topScore = total; - _topMatch2 = matches; - } -} - //#endregion diff --git a/src/vs/base/test/common/filters.perf.test.ts b/src/vs/base/test/common/filters.perf.test.ts index c189feaa47b..a0dda5ceaf2 100644 --- a/src/vs/base/test/common/filters.perf.test.ts +++ b/src/vs/base/test/common/filters.perf.test.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import * as filters from 'vs/base/common/filters'; -import { data } from './filters.perf.data'; +import { data } from 'vs/base/test/common/filters.perf.data'; const patterns = ['cci', 'ida', 'pos', 'CCI', 'enbled', 'callback', 'gGame', 'cons', 'zyx', 'aBc']; diff --git a/src/vs/base/test/common/filters.test.ts b/src/vs/base/test/common/filters.test.ts index c53f192e6e4..d402df3ac65 100644 --- a/src/vs/base/test/common/filters.test.ts +++ b/src/vs/base/test/common/filters.test.ts @@ -285,7 +285,7 @@ suite('Filters', () => { assertMatches('LLLL', 'SVisualLoggerLogsList', undefined, fuzzyScore); assertMatches('TEdit', 'TextEdit', '^Text^E^d^i^t', fuzzyScore); assertMatches('TEdit', 'TextEditor', '^Text^E^d^i^tor', fuzzyScore); - assertMatches('TEdit', 'Textedit', '^T^exte^d^i^t', fuzzyScore); + assertMatches('TEdit', 'Textedit', '^Text^e^d^i^t', fuzzyScore); assertMatches('TEdit', 'text_edit', '^text_^e^d^i^t', fuzzyScore); assertMatches('TEditDit', 'TextEditorDecorationType', '^Text^E^d^i^tor^Decorat^ion^Type', fuzzyScore); assertMatches('TEdit', 'TextEditorDecorationType', '^Text^E^d^i^torDecorationType', fuzzyScore); From 0ecb7735496bf015acf0d4ac195c6bfaaf5d6887 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 13:56:35 +0100 Subject: [PATCH 021/171] shared process - more cleanup --- src/vs/code/electron-main/sharedProcess.ts | 124 ++++++++++++--------- src/vs/code/electron-main/window.ts | 17 +-- 2 files changed, 78 insertions(+), 63 deletions(-) diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 5ee9e5d4f81..94c2595a697 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -11,17 +11,20 @@ import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService'; -import { toDisposable, DisposableStore } from 'vs/base/common/lifecycle'; import { FileAccess } from 'vs/base/common/network'; import { browserCodeLoadingCacheStrategy } from 'vs/base/common/platform'; import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; +import { Disposable } from 'vs/base/common/lifecycle'; -export class SharedProcess implements ISharedProcess { +export class SharedProcess extends Disposable implements ISharedProcess { - private readonly barrier = new Barrier(); - private readonly _whenReady: Promise; + private readonly whenSpawnedBarrier = new Barrier(); - private window: BrowserWindow | null = null; + // overall ready promise when shared process signals initialization is done + private readonly _whenReady = new Promise(resolve => ipcMain.once('vscode:shared-process->electron-main=init-done', () => resolve())); + + private window: BrowserWindow | undefined = undefined; + private windowCloseListener: ((event: Event) => void) | undefined = undefined; constructor( private readonly machineId: string, @@ -31,12 +34,59 @@ export class SharedProcess implements ISharedProcess { @ILogService private readonly logService: ILogService, @IThemeMainService private readonly themeMainService: IThemeMainService ) { - // overall ready promise when shared process signals initialization is done - this._whenReady = new Promise(c => ipcMain.once('vscode:shared-process->electron-main=init-done', () => c(undefined))); + super(); + + this.registerListeners(); + } + + private registerListeners(): void { + this._register(this.lifecycleMainService.onWillShutdown(() => this.onWillShutdown())); + } + + private onWillShutdown(): void { + const window = this.window; + if (!window) { + return; // possibly too early before created + } + + // Signal exit to shared process when shutting down + window.webContents.send('vscode:electron-main->shared-process=exit'); + + // Shut the shared process down when we are quitting + // + // Note: because we veto the window close, we must first remove our veto. + // Otherwise the application would never quit because the shared process + // window is refusing to close! + // + if (this.windowCloseListener) { + window.removeListener('close', this.windowCloseListener); + } + + // Electron seems to crash on Windows without this setTimeout :| + setTimeout(() => { + try { + window.close(); + } catch (err) { + // ignore, as electron is already shutting down + } + + this.window = undefined; + }, 0); } @memoize private get _whenIpcReady(): Promise { + + // Create window for shared process + this.createWindow(); + + // complete IPC-ready promise when shared process signals this to us + return new Promise(resolve => ipcMain.once('vscode:shared-process->electron-main=ipc-ready', () => resolve(undefined))); + } + + private createWindow(): void { + + // shared process is a hidden window by default this.window = new BrowserWindow({ show: false, backgroundColor: this.themeMainService.getBackgroundColor(), @@ -72,72 +122,42 @@ export class SharedProcess implements ISharedProcess { .toString(true) ); - // Prevent the window from dying - const onClose = (e: Event) => { + // Prevent the window from closing + this.windowCloseListener = (e: Event) => { this.logService.trace('SharedProcess#close prevented'); // We never allow to close the shared process unless we get explicitly disposed() e.preventDefault(); // Still hide the window though if visible - if (this.window && this.window.isVisible()) { + if (this.window?.isVisible()) { this.window.hide(); } }; - this.window.on('close', onClose); - - const disposables = new DisposableStore(); - - this.lifecycleMainService.onWillShutdown(() => { - disposables.dispose(); - - // Shut the shared process down when we are quitting - // - // Note: because we veto the window close, we must first remove our veto. - // Otherwise the application would never quit because the shared process - // window is refusing to close! - // - if (this.window) { - this.window.removeListener('close', onClose); - } - - // Electron seems to crash on Windows without this setTimeout :| - setTimeout(() => { - try { - if (this.window) { - this.window.close(); - } - } catch (err) { - // ignore, as electron is already shutting down - } - - this.window = null; - }, 0); - }); - - return new Promise(resolve => { - - // signal exit to shared process when we get disposed - disposables.add(toDisposable(() => this.window?.webContents.send('vscode:electron-main->shared-process=exit'))); - - // complete IPC-ready promise when shared process signals this to us - ipcMain.once('vscode:shared-process->electron-main=ipc-ready', () => resolve(undefined)); - }); + this.window.on('close', this.windowCloseListener); } spawn(userEnv: NodeJS.ProcessEnv): void { this.userEnv = { ...this.userEnv, ...userEnv }; - this.barrier.open(); + + // Release barrier + this.whenSpawnedBarrier.open(); } async whenReady(): Promise { - await this.barrier.wait(); + + // Always wait for `spawn()` + await this.whenSpawnedBarrier.wait(); + await this._whenReady; } async whenIpcReady(): Promise { - await this.barrier.wait(); + + // Always wait for `spawn()` + await this.whenSpawnedBarrier.wait(); + await this._whenIpcReady; } diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index c27b128c227..8c4caa9bfc0 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -102,22 +102,22 @@ export class CodeWindow extends Disposable implements ICodeWindow { private hiddenTitleBarStyle: boolean | undefined; private showTimeoutHandle: NodeJS.Timeout | undefined; - private _lastFocusTime: number; - private _readyState: ReadyState; + private _lastFocusTime = -1; + private _readyState = ReadyState.NONE; private windowState: IWindowState; private currentMenuBarVisibility: MenuBarVisibility | undefined; private representedFilename: string | undefined; private documentEdited: boolean | undefined; - private readonly whenReadyCallbacks: { (window: ICodeWindow): void }[]; + private readonly whenReadyCallbacks: { (window: ICodeWindow): void }[] = []; private marketplaceHeadersPromise: Promise; - private readonly touchBarGroups: TouchBarSegmentedControl[]; + private readonly touchBarGroups: TouchBarSegmentedControl[] = []; - private currentHttpProxy?: string; - private currentNoProxy?: string; + private currentHttpProxy: string | undefined = undefined; + private currentNoProxy: string | undefined = undefined; constructor( config: IWindowCreationOptions, @@ -135,11 +135,6 @@ export class CodeWindow extends Disposable implements ICodeWindow { ) { super(); - this.touchBarGroups = []; - this._lastFocusTime = -1; - this._readyState = ReadyState.NONE; - this.whenReadyCallbacks = []; - //#region create browser window { // Load window state From a198be16f930b553129637baffac6d9e8f6621d4 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Wed, 13 Jan 2021 15:44:22 +0100 Subject: [PATCH 022/171] shared process - some :lipstick: --- src/vs/code/electron-main/sharedProcess.ts | 16 ++++++++++------ src/vs/code/electron-main/window.ts | 7 +++---- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 94c2595a697..56e712e3bbd 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -170,16 +170,20 @@ export class SharedProcess extends Disposable implements ISharedProcess { } show(): void { - if (this.window) { - this.window.show(); - this.window.webContents.openDevTools(); + if (!this.window) { + return; // possibly too early before created } + + this.window.show(); + this.window.webContents.openDevTools(); } hide(): void { - if (this.window) { - this.window.webContents.closeDevTools(); - this.window.hide(); + if (!this.window) { + return; // possibly too early before created } + + this.window.webContents.closeDevTools(); + this.window.hide(); } } diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index 8c4caa9bfc0..6845a6711bd 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -124,7 +124,7 @@ export class CodeWindow extends Disposable implements ICodeWindow { @ILogService private readonly logService: ILogService, @IEnvironmentMainService private readonly environmentService: IEnvironmentMainService, @IFileService private readonly fileService: IFileService, - @IStorageMainService private readonly storageService: IStorageMainService, + @IStorageMainService storageService: IStorageMainService, @IConfigurationService private readonly configurationService: IConfigurationService, @IThemeMainService private readonly themeMainService: IThemeMainService, @IWorkspacesMainService private readonly workspacesMainService: IWorkspacesMainService, @@ -275,10 +275,9 @@ export class CodeWindow extends Disposable implements ICodeWindow { this.createTouchBar(); // Request handling - const that = this; this.marketplaceHeadersPromise = resolveMarketplaceHeaders(product.version, this.environmentService, this.fileService, { - get(key) { return that.storageService.get(key); }, - store(key, value) { that.storageService.store(key, value); } + get(key) { return storageService.get(key); }, + store(key, value) { storageService.store(key, value); } }); // Eventing From c265dff48a27868c7f0f84fd25a169897dc43d73 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Wed, 13 Jan 2021 20:52:48 -0800 Subject: [PATCH 023/171] chore: bump electron@11.2.0 --- .yarnrc | 2 +- cgmanifest.json | 8 ++++---- package.json | 4 ++-- yarn.lock | 8 ++++---- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/.yarnrc b/.yarnrc index 914682b9e33..a955a275dab 100644 --- a/.yarnrc +++ b/.yarnrc @@ -1,3 +1,3 @@ disturl "https://electronjs.org/headers" -target "11.1.0" +target "11.2.0" runtime "electron" diff --git a/cgmanifest.json b/cgmanifest.json index 3e5c192873f..8f419d60bc8 100644 --- a/cgmanifest.json +++ b/cgmanifest.json @@ -6,7 +6,7 @@ "git": { "name": "chromium", "repositoryUrl": "https://chromium.googlesource.com/chromium/src", - "commitHash": "dcfd8d6023038d7a33f7baf393dcd6b1dc93f3b5" + "commitHash": "c0dfcf99c0bbc9c4763c70e5034eb1a970a9ff3b" } }, "licenseDetail": [ @@ -40,7 +40,7 @@ "SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." ], "isOnlyProductionDependency": true, - "version": "87.0.4280.88" + "version": "87.0.4280.141" }, { "component": { @@ -60,12 +60,12 @@ "git": { "name": "electron", "repositoryUrl": "https://github.com/electron/electron", - "commitHash": "101a2282ab3ae030ace05e70043739386c24b3cb" + "commitHash": "56e926ce2362770a84403059b3ce3d40135ed7db" } }, "isOnlyProductionDependency": true, "license": "MIT", - "version": "11.1.0" + "version": "11.2.0" }, { "component": { diff --git a/package.json b/package.json index c4d5a325419..2a502db7611 100644 --- a/package.json +++ b/package.json @@ -45,7 +45,7 @@ "compile-web": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js compile-web", "watch-web": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js watch-web", "eslint": "node build/eslint", - "electron-rebuild": "electron-rebuild --arch=arm64 --force --version=11.1.0", + "electron-rebuild": "electron-rebuild --arch=arm64 --force --version=11.2.0", "playwright-install": "node node_modules/playwright/install.js", "compile-build": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js compile-build", "compile-extensions-build": "node --max_old_space_size=4095 ./node_modules/gulp/bin/gulp.js compile-extensions-build", @@ -121,7 +121,7 @@ "css-loader": "^3.2.0", "debounce": "^1.0.0", "deemon": "^1.4.0", - "electron": "11.1.0", + "electron": "11.2.0", "electron-rebuild": "2.0.3", "eslint": "6.8.0", "eslint-plugin-jsdoc": "^19.1.0", diff --git a/yarn.lock b/yarn.lock index 7a0a2da0d5a..aa6a4ba87cc 100644 --- a/yarn.lock +++ b/yarn.lock @@ -3041,10 +3041,10 @@ electron-to-chromium@^1.2.7: resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.27.tgz#78ecb8a399066187bb374eede35d9c70565a803d" integrity sha1-eOy4o5kGYYe7N07t412ccFZagD0= -electron@11.1.0: - version "11.1.0" - resolved "https://registry.yarnpkg.com/electron/-/electron-11.1.0.tgz#8dfdf579d1eb79feef3e3d2937fc022e72129c90" - integrity sha512-RFAhR/852VMaRd9NSe7jprwSoG9dLc6u1GwnqRWg+/3cy/8Zrwt1Betw1lXiZH7hGuB9K2cqju83Xv5Pq5ZSGA== +electron@11.2.0: + version "11.2.0" + resolved "https://registry.yarnpkg.com/electron/-/electron-11.2.0.tgz#f8577ea4c9ba94068850256145be26b0b89a5dd7" + integrity sha512-weszOPAJPoPu6ozL7vR9enXmaDSqH+KE9iZODfbGdnFgtVfVdfyedjlvEGIUJkLMPXM1y/QWwCl2dINzr0Jq5Q== dependencies: "@electron/get" "^1.0.1" "@types/node" "^12.0.12" From 2964fcbb84651625bb16fd1b30a44fcaa27f0caf Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 14 Jan 2021 07:52:52 +0100 Subject: [PATCH 024/171] shared process - extract more cleanup helpers to contrib --- .../contrib/deprecatedExtensionsCleaner.ts | 25 +++++++++++++++++++ .../contrib/localizationsUpdater.ts | 23 +++++++++++++++++ .../sharedProcess/sharedProcessMain.ts | 18 ++++++------- src/vs/code/electron-main/sharedProcess.ts | 4 ++- .../extensions.contribution.ts | 4 +-- 5 files changed, 60 insertions(+), 14 deletions(-) create mode 100644 src/vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner.ts create mode 100644 src/vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater.ts diff --git a/src/vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner.ts b/src/vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner.ts new file mode 100644 index 00000000000..0ffa0870e95 --- /dev/null +++ b/src/vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner.ts @@ -0,0 +1,25 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { Disposable } from 'vs/base/common/lifecycle'; +import { ExtensionManagementService } from 'vs/platform/extensionManagement/node/extensionManagementService'; +import { IExtensionManagementService } from 'vs/platform/extensionManagement/common/extensionManagement'; + +export class DeprecatedExtensionsCleaner extends Disposable { + + constructor( + @IExtensionManagementService private readonly extensionManagementService: ExtensionManagementService + ) { + super(); + + this._register(extensionManagementService); // TODO@sandy081 this seems fishy + + this.cleanUpDeprecatedExtensions(); + } + + private cleanUpDeprecatedExtensions(): void { + this.extensionManagementService.removeDeprecatedExtensions(); + } +} diff --git a/src/vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater.ts b/src/vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater.ts new file mode 100644 index 00000000000..6c9bfa8125a --- /dev/null +++ b/src/vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater.ts @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { Disposable } from 'vs/base/common/lifecycle'; +import { ILocalizationsService } from 'vs/platform/localizations/common/localizations'; +import { LocalizationsService } from 'vs/platform/localizations/node/localizations'; + +export class LocalizationsUpdater extends Disposable { + + constructor( + @ILocalizationsService private readonly localizationsService: LocalizationsService + ) { + super(); + + this.updateLocalizations(); + } + + private updateLocalizations(): void { + this.localizationsService.update(); + } +} diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index a65090daa1d..272c5c21c92 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -73,6 +73,8 @@ import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService import { ExtensionsStorageSyncService, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; +import { LocalizationsUpdater } from 'vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater'; +import { DeprecatedExtensionsCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner'; class MainProcessService implements IMainProcessService { @@ -125,21 +127,16 @@ class SharedProcessMain extends Disposable { // Channels this.initChannels(accessor); - - // Clean-up deprecated extensions - const extensionManagementService = this._register((accessor.get(IExtensionManagementService) as ExtensionManagementService)); - extensionManagementService.removeDeprecatedExtensions(); - - // Update localizations cache - (accessor.get(ILocalizationsService) as LocalizationsService).update(); }); - // Instantiate Clean-up helpers + // Instantiate Contributions this._register(combinedDisposable( new NodeCachedDataCleaner(this.configuration.nodeCachedDataDir), instantiationService.createInstance(LanguagePackCachedDataCleaner), instantiationService.createInstance(StorageDataCleaner, this.configuration.backupWorkspacesPath), - instantiationService.createInstance(LogsDataCleaner) + instantiationService.createInstance(LogsDataCleaner), + instantiationService.createInstance(LocalizationsUpdater), + instantiationService.createInstance(DeprecatedExtensionsCleaner) )); } @@ -158,6 +155,7 @@ class SharedProcessMain extends Disposable { this._register(new ConsoleLogService(this.configuration.logLevel)), this._register(new SpdLogService('sharedprocess', environmentService.logsPath, this.configuration.logLevel)) ])); + const logService = this._register(new FollowerLogService(loggerClient, multiplexLogger)); services.set(ILogService, logService); @@ -201,7 +199,7 @@ class SharedProcessMain extends Disposable { // Extension recommendations const activeWindowManager = new ActiveWindowManager(nativeHostService); const activeWindowRouter = new StaticRouter(ctx => activeWindowManager.getActiveClientId().then(id => ctx === id)); - services.set(IExtensionRecommendationNotificationService, new ExtensionRecommendationNotificationServiceChannelClient(this.server.getChannel('IExtensionRecommendationNotificationService', activeWindowRouter))); + services.set(IExtensionRecommendationNotificationService, new ExtensionRecommendationNotificationServiceChannelClient(this.server.getChannel('extensionRecommendationNotification', activeWindowRouter))); // Logger const loggerService = new LoggerService(logService, fileService); diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 56e712e3bbd..b301adb15c1 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -50,7 +50,7 @@ export class SharedProcess extends Disposable implements ISharedProcess { } // Signal exit to shared process when shutting down - window.webContents.send('vscode:electron-main->shared-process=exit'); + window.webContents.send('vscode:electron-main->shared-process=exit'); // TODO verify call // Shut the shared process down when we are quitting // @@ -60,6 +60,7 @@ export class SharedProcess extends Disposable implements ISharedProcess { // if (this.windowCloseListener) { window.removeListener('close', this.windowCloseListener); + this.windowCloseListener = undefined; } // Electron seems to crash on Windows without this setTimeout :| @@ -116,6 +117,7 @@ export class SharedProcess extends Disposable implements ISharedProcess { logLevel: this.logService.getLevel() }; + // Load with config this.window.loadURL(FileAccess .asBrowserUri('vs/code/electron-browser/sharedProcess/sharedProcess.html', require) .with({ query: `config=${encodeURIComponent(JSON.stringify(config))}` }) diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts index e1349a608a4..a92f4334ba0 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts @@ -21,7 +21,6 @@ import { ExtensionHostProfileService } from 'vs/workbench/contrib/extensions/ele import { RuntimeExtensionsInput } from 'vs/workbench/contrib/extensions/common/runtimeExtensionsInput'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { ExtensionsAutoProfiler } from 'vs/workbench/contrib/extensions/electron-browser/extensionsAutoProfiler'; -import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { OpenExtensionsFolderAction } from 'vs/workbench/contrib/extensions/electron-sandbox/extensionsActions'; import { ExtensionsLabel } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IExtensionRecommendationNotificationService } from 'vs/platform/extensionRecommendations/common/extensionRecommendations'; @@ -62,11 +61,10 @@ const actionRegistry = Registry.as(WorkbenchActionExte class ExtensionsContributions implements IWorkbenchContribution { constructor( - @INativeWorkbenchEnvironmentService environmentService: INativeWorkbenchEnvironmentService, @IExtensionRecommendationNotificationService extensionRecommendationNotificationService: IExtensionRecommendationNotificationService, @ISharedProcessService sharedProcessService: ISharedProcessService, ) { - sharedProcessService.registerChannel('IExtensionRecommendationNotificationService', new ExtensionRecommendationNotificationServiceChannel(extensionRecommendationNotificationService)); + sharedProcessService.registerChannel('extensionRecommendationNotification', new ExtensionRecommendationNotificationServiceChannel(extensionRecommendationNotificationService)); const openExtensionsFolderActionDescriptor = SyncActionDescriptor.from(OpenExtensionsFolderAction); actionRegistry.registerWorkbenchAction(openExtensionsFolderActionDescriptor, 'Extensions: Open Extensions Folder', ExtensionsLabel); } From 96b44121f98168ce50dcc8b77a2753a31704822b Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 14 Jan 2021 08:25:50 +0100 Subject: [PATCH 025/171] shared process - add error handler and graceful-fs --- .../sharedProcess/sharedProcessMain.ts | 39 +++++++++++++++++-- src/vs/code/electron-main/sharedProcess.ts | 14 +++++++ src/vs/code/electron-main/window.ts | 8 +--- .../electron-browser/desktop.main.ts | 4 +- 4 files changed, 54 insertions(+), 11 deletions(-) diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 272c5c21c92..663b67bfab4 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -4,7 +4,8 @@ *--------------------------------------------------------------------------------------------*/ import product from 'vs/platform/product/common/product'; -import { unlinkSync } from 'fs'; +import * as fs from 'fs'; +import { gracefulify } from 'graceful-fs'; import { isWindows } from 'vs/base/common/platform'; import { IChannel, IServerChannel, StaticRouter, createChannelSender, createChannelReceiver } from 'vs/base/parts/ipc/common/ipc'; import { serve as nodeIPCServe, Server as NodeIPCServer, connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; @@ -75,6 +76,8 @@ import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiati import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; import { LocalizationsUpdater } from 'vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater'; import { DeprecatedExtensionsCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner'; +import { onUnexpectedError, setUnexpectedErrorHandler } from 'vs/base/common/errors'; +import { toErrorMessage } from 'vs/base/common/errorMessage'; class MainProcessService implements IMainProcessService { @@ -99,6 +102,9 @@ class SharedProcessMain extends Disposable { constructor(private server: NodeIPCServer, private configuration: ISharedProcessConfiguration) { super(); + // Enable gracefulFs + gracefulify(fs); + this._register(this.server); this.registerListeners(); @@ -121,12 +127,16 @@ class SharedProcessMain extends Disposable { registerUserDataSyncConfiguration(); instantiationService.invokeFunction(accessor => { + const logService = accessor.get(ILogService); // Log info - accessor.get(ILogService).trace('sharedProcess configuration', JSON.stringify(this.configuration)); + logService.trace('sharedProcess configuration', JSON.stringify(this.configuration)); // Channels this.initChannels(accessor); + + // Error handler + this.registerErrorHandler(logService); }); // Instantiate Contributions @@ -310,6 +320,29 @@ class SharedProcessMain extends Disposable { const userDataAutoSyncChannel = new UserDataAutoSyncChannel(userDataAutoSync); this.server.registerChannel('userDataAutoSync', userDataAutoSyncChannel); } + + private registerErrorHandler(logService: ILogService): void { + + // Listen on unhandled rejection events + window.addEventListener('unhandledrejection', (event: PromiseRejectionEvent) => { + + // See https://developer.mozilla.org/en-US/docs/Web/API/PromiseRejectionEvent + onUnexpectedError(event.reason); + + // Prevent the printing of this event to the console + event.preventDefault(); + }); + + // Install handler for unexpected errors + setUnexpectedErrorHandler(error => { + const message = toErrorMessage(error, true); + if (!message) { + return; + } + + logService.error(message); + }); + } } function setupNodeIPC(hook: string): Promise { @@ -332,7 +365,7 @@ function setupNodeIPC(hook: string): Promise { // let's delete it, since we can't connect to it // and the retry the whole thing try { - unlinkSync(hook); + fs.unlinkSync(hook); } catch (e) { return Promise.reject(new Error('Error deleting the shared ipc hook.')); } diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index b301adb15c1..d196ef0e872 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -81,6 +81,9 @@ export class SharedProcess extends Disposable implements ISharedProcess { // Create window for shared process this.createWindow(); + // Listeners + this.registerWindowListeners(); + // complete IPC-ready promise when shared process signals this to us return new Promise(resolve => ipcMain.once('vscode:shared-process->electron-main=ipc-ready', () => resolve(undefined))); } @@ -123,6 +126,12 @@ export class SharedProcess extends Disposable implements ISharedProcess { .with({ query: `config=${encodeURIComponent(JSON.stringify(config))}` }) .toString(true) ); + } + + private registerWindowListeners(): void { + if (!this.window) { + return; + } // Prevent the window from closing this.windowCloseListener = (e: Event) => { @@ -138,6 +147,11 @@ export class SharedProcess extends Disposable implements ISharedProcess { }; this.window.on('close', this.windowCloseListener); + + // Crashes & Unrsponsive & Failed to load + this.window.webContents.on('render-process-gone', (event, details) => this.logService.error(`[VS Code]: sharedProcess crashed (detail: ${details?.reason})`)); + this.window.on('unresponsive', () => this.logService.error('[VS Code]: detected unresponsive sharedProcess window')); + this.window.webContents.on('did-fail-load', (event: Event, errorCode: number, errorDescription: string) => this.logService.warn('[VS Code]: fail to load sharedProcess window, ', errorDescription)); } spawn(userEnv: NodeJS.ProcessEnv): void { diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index 6845a6711bd..c4de35da47b 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -412,9 +412,10 @@ export class CodeWindow extends Disposable implements ICodeWindow { private registerListeners(): void { - // Crashes & Unrsponsive + // Crashes & Unrsponsive & Failed to load this._win.webContents.on('render-process-gone', (event, details) => this.onWindowError(WindowError.CRASHED, details)); this._win.on('unresponsive', () => this.onWindowError(WindowError.UNRESPONSIVE)); + this._win.webContents.on('did-fail-load', (event: Event, errorCode: number, errorDescription: string) => this.logService.warn('[VS Code]: fail to load workbench window, ', errorDescription)); // Window close this._win.on('closed', () => { @@ -525,11 +526,6 @@ export class CodeWindow extends Disposable implements ICodeWindow { this.sendWhenReady('vscode:leaveFullScreen', CancellationToken.None); }); - // Window Failed to load - this._win.webContents.on('did-fail-load', (event: Event, errorCode: number, errorDescription: string, validatedURL: string, isMainFrame: boolean) => { - this.logService.warn('[electron event]: fail to load, ', errorDescription); - }); - // Handle configuration changes this._register(this.configurationService.onDidChangeConfiguration(e => this.onConfigurationUpdated())); diff --git a/src/vs/workbench/electron-browser/desktop.main.ts b/src/vs/workbench/electron-browser/desktop.main.ts index 722d27eae11..23ee89c3631 100644 --- a/src/vs/workbench/electron-browser/desktop.main.ts +++ b/src/vs/workbench/electron-browser/desktop.main.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as fs from 'fs'; -import * as gracefulFs from 'graceful-fs'; +import { gracefulify } from 'graceful-fs'; import { createHash } from 'crypto'; import { exists, stat } from 'vs/base/node/pfs'; import { isLinux, isMacintosh, isWindows } from 'vs/base/common/platform'; @@ -70,7 +70,7 @@ class DesktopMain extends Disposable { private init(): void { // Enable gracefulFs - gracefulFs.gracefulify(fs); + gracefulify(fs); // Massage configuration file URIs this.reviveUris(); From cd906568752b58ea5dd904577291800d5d1cd8c7 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 14 Jan 2021 09:28:02 +0100 Subject: [PATCH 026/171] shared process - document electron IPC --- src/vs/base/parts/ipc/common/ipc.electron.ts | 5 +++++ src/vs/base/parts/ipc/electron-main/ipc.electron.ts | 9 ++++++--- .../base/parts/ipc/electron-sandbox/ipc.electron.ts | 13 +++++++++---- 3 files changed, 20 insertions(+), 7 deletions(-) diff --git a/src/vs/base/parts/ipc/common/ipc.electron.ts b/src/vs/base/parts/ipc/common/ipc.electron.ts index 516351e1509..52d8c99575d 100644 --- a/src/vs/base/parts/ipc/common/ipc.electron.ts +++ b/src/vs/base/parts/ipc/common/ipc.electron.ts @@ -11,6 +11,11 @@ export interface Sender { send(channel: string, msg: unknown): void; } +/** + * The Electron `Protocol` leverages Electron style IPC communication (`ipcRenderer`, `ipcMain`) + * for the implementation of the `IMessagePassingProtocol`. That style of API requires a channel + * name for sending data. + */ export class Protocol implements IMessagePassingProtocol { constructor(private sender: Sender, readonly onMessage: Event) { } diff --git a/src/vs/base/parts/ipc/electron-main/ipc.electron.ts b/src/vs/base/parts/ipc/electron-main/ipc.electron.ts index 405fbcc7669..594c9f758c0 100644 --- a/src/vs/base/parts/ipc/electron-main/ipc.electron.ts +++ b/src/vs/base/parts/ipc/electron-main/ipc.electron.ts @@ -3,10 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { ipcMain, WebContents } from 'electron'; import { Event, Emitter } from 'vs/base/common/event'; import { IPCServer, ClientConnectionEvent } from 'vs/base/parts/ipc/common/ipc'; -import { Protocol } from 'vs/base/parts/ipc/common/ipc.electron'; -import { ipcMain, WebContents } from 'electron'; +import { Protocol as ElectronProtocol } from 'vs/base/parts/ipc/common/ipc.electron'; import { IDisposable, toDisposable } from 'vs/base/common/lifecycle'; import { VSBuffer } from 'vs/base/common/buffer'; @@ -22,6 +22,9 @@ function createScopedOnMessageEvent(senderId: number, eventName: string): Event< return Event.map(onMessageFromSender, ({ message }) => message ? VSBuffer.wrap(message) : message); } +/** + * An implemention of `IPCServer` on top of Electron `ipcMain` API. + */ export class Server extends IPCServer { private static readonly Clients = new Map(); @@ -42,7 +45,7 @@ export class Server extends IPCServer { const onMessage = createScopedOnMessageEvent(id, 'vscode:message') as Event; const onDidClientDisconnect = Event.any(Event.signal(createScopedOnMessageEvent(id, 'vscode:disconnect')), onDidClientReconnect.event); - const protocol = new Protocol(webContents, onMessage); + const protocol = new ElectronProtocol(webContents, onMessage); return { protocol, onDidClientDisconnect }; }); diff --git a/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts b/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts index 46dac6483e4..e83b9c02b2b 100644 --- a/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts +++ b/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts @@ -5,25 +5,30 @@ import { Event } from 'vs/base/common/event'; import { IPCClient } from 'vs/base/parts/ipc/common/ipc'; -import { Protocol } from 'vs/base/parts/ipc/common/ipc.electron'; +import { Protocol as ElectronProtocol } from 'vs/base/parts/ipc/common/ipc.electron'; import { IDisposable } from 'vs/base/common/lifecycle'; import { VSBuffer } from 'vs/base/common/buffer'; import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; +/** + * An implemention of `IPCClient` on top of Electron `ipcRenderer` IPC communication + * provided from sandbox globals (via preload script). + */ export class Client extends IPCClient implements IDisposable { - private protocol: Protocol; + private protocol: ElectronProtocol; - private static createProtocol(): Protocol { + private static createProtocol(): ElectronProtocol { const onMessage = Event.fromNodeEventEmitter(ipcRenderer, 'vscode:message', (_, message) => VSBuffer.wrap(message)); ipcRenderer.send('vscode:hello'); - return new Protocol(ipcRenderer, onMessage); + return new ElectronProtocol(ipcRenderer, onMessage); } constructor(id: string) { const protocol = Client.createProtocol(); super(protocol, id); + this.protocol = protocol; } From 44278132f4feb199afc3c987ca52ad0e9be1b038 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 14 Jan 2021 09:56:08 +0100 Subject: [PATCH 027/171] fix peek view alignment --- src/vs/workbench/contrib/testing/browser/media/testing.css | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/testing/browser/media/testing.css b/src/vs/workbench/contrib/testing/browser/media/testing.css index a8880c0c3d4..9869bf8a909 100644 --- a/src/vs/workbench/contrib/testing/browser/media/testing.css +++ b/src/vs/workbench/contrib/testing/browser/media/testing.css @@ -68,6 +68,6 @@ border-bottom-width: 2px; } -.monaco-editor .zone-widget .zone-widget-container.peekview-widget .peekview-title .filename { +/* .monaco-editor .zone-widget .zone-widget-container.peekview-widget .peekview-title .filename { height: 22px; -} +} */ From db30147068f32e9f4108bc385ce412d45442753f Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 10:23:30 +0100 Subject: [PATCH 028/171] Add test for case to assert that fetch should be scheduled again when a text buffer change occurs while the provider runs and the provider returns null --- .../common/services/modelServiceImpl.ts | 17 ++-- .../test/common/services/modelService.test.ts | 96 ++++++++++++++++++- .../theme/test/common/testThemeService.ts | 9 +- 3 files changed, 105 insertions(+), 17 deletions(-) diff --git a/src/vs/editor/common/services/modelServiceImpl.ts b/src/vs/editor/common/services/modelServiceImpl.ts index f182631fb11..0565b80337e 100644 --- a/src/vs/editor/common/services/modelServiceImpl.ts +++ b/src/vs/editor/common/services/modelServiceImpl.ts @@ -712,7 +712,9 @@ class SemanticTokensResponse { } } -class ModelSemanticColoring extends Disposable { +export class ModelSemanticColoring extends Disposable { + + public static FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY = 300; private _isDisposed: boolean; private readonly _model: ITextModel; @@ -728,7 +730,7 @@ class ModelSemanticColoring extends Disposable { this._isDisposed = false; this._model = model; this._semanticStyling = stylingProvider; - this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), 300)); + this._fetchDocumentSemanticTokens = this._register(new RunOnceScheduler(() => this._fetchDocumentSemanticTokensNow(), ModelSemanticColoring.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY)); this._currentDocumentResponse = null; this._currentDocumentRequestCancellationTokenSource = null; this._documentProvidersChangeListeners = []; @@ -844,9 +846,7 @@ class ModelSemanticColoring extends Disposable { const rescheduleIfNeeded = () => { if (pendingChanges.length > 0 && !this._fetchDocumentSemanticTokens.isScheduled()) { this._fetchDocumentSemanticTokens.schedule(); - return true; } - return false; }; if (this._currentDocumentResponse) { @@ -865,10 +865,8 @@ class ModelSemanticColoring extends Disposable { return; } if (!tokens) { - // Only reset semantic tokens if we did not reschedule to avoid "blinking" tokens - if (!rescheduleIfNeeded()) { - this._model.setSemanticTokens(null, true); - } + this._model.setSemanticTokens(null, true); + rescheduleIfNeeded(); return; } @@ -945,8 +943,7 @@ class ModelSemanticColoring extends Disposable { } this._model.setSemanticTokens(result, true); - } - else { + } else { this._model.setSemanticTokens(null, true); } diff --git a/src/vs/editor/test/common/services/modelService.test.ts b/src/vs/editor/test/common/services/modelService.test.ts index e6e852f6bb0..fd2cb6532ce 100644 --- a/src/vs/editor/test/common/services/modelService.test.ts +++ b/src/vs/editor/test/common/services/modelService.test.ts @@ -11,18 +11,27 @@ import { EditOperation } from 'vs/editor/common/core/editOperation'; import { Range } from 'vs/editor/common/core/range'; import { Selection } from 'vs/editor/common/core/selection'; import { createStringBuilder } from 'vs/editor/common/core/stringBuilder'; -import { DefaultEndOfLine } from 'vs/editor/common/model'; +import { DefaultEndOfLine, ITextModel } from 'vs/editor/common/model'; import { createTextBuffer } from 'vs/editor/common/model/textModel'; -import { ModelServiceImpl } from 'vs/editor/common/services/modelServiceImpl'; +import { ModelSemanticColoring, ModelServiceImpl } from 'vs/editor/common/services/modelServiceImpl'; import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; -import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService'; +import { TestColorTheme, TestThemeService } from 'vs/platform/theme/test/common/testThemeService'; import { NullLogService } from 'vs/platform/log/common/log'; import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService'; import { TestDialogService } from 'vs/platform/dialogs/test/common/testDialogService'; import { TestNotificationService } from 'vs/platform/notification/test/common/testNotificationService'; import { createTextModel } from 'vs/editor/test/common/editorTestUtils'; +import { DisposableStore } from 'vs/base/common/lifecycle'; +import { DocumentSemanticTokensProvider, DocumentSemanticTokensProviderRegistry, SemanticTokens, SemanticTokensEdits, SemanticTokensLegend } from 'vs/editor/common/modes'; +import { CancellationToken } from 'vs/base/common/cancellation'; +import { Barrier, timeout } from 'vs/base/common/async'; +import { ModeServiceImpl } from 'vs/editor/common/services/modeServiceImpl'; +import { ColorScheme } from 'vs/platform/theme/common/theme'; +import { ModesRegistry } from 'vs/editor/common/modes/modesRegistry'; +import { IModelService } from 'vs/editor/common/services/modelService'; +import { IModeService } from 'vs/editor/common/services/modeService'; const GENERATE_TESTS = false; @@ -378,6 +387,87 @@ suite('ModelService', () => { }); }); +suite('ModelSemanticColoring', () => { + + const disposables = new DisposableStore(); + const ORIGINAL_FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY = ModelSemanticColoring.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY; + let modelService: IModelService; + let modeService: IModeService; + + setup(() => { + ModelSemanticColoring.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY = 0; + + const configService = new TestConfigurationService({ editor: { semanticHighlighting: true } }); + const themeService = new TestThemeService(); + themeService.setTheme(new TestColorTheme({}, ColorScheme.DARK, true)); + modelService = disposables.add(new ModelServiceImpl( + configService, + new TestTextResourcePropertiesService(configService), + themeService, + new NullLogService(), + new UndoRedoService(new TestDialogService(), new TestNotificationService()) + )); + modeService = disposables.add(new ModeServiceImpl(false)); + }); + + teardown(() => { + disposables.clear(); + ModelSemanticColoring.FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY = ORIGINAL_FETCH_DOCUMENT_SEMANTIC_TOKENS_DELAY; + }); + + test('DocumentSemanticTokens should be fetched when the result is empty if there are pending changes', async () => { + + disposables.add(ModesRegistry.registerLanguage({ id: 'testMode' })); + + const inFirstCall = new Barrier(); + const delayFirstResult = new Barrier(); + const secondResultProvided = new Barrier(); + let callCount = 0; + + disposables.add(DocumentSemanticTokensProviderRegistry.register('testMode', new class implements DocumentSemanticTokensProvider { + getLegend(): SemanticTokensLegend { + return { tokenTypes: ['class'], tokenModifiers: [] }; + } + async provideDocumentSemanticTokens(model: ITextModel, lastResultId: string | null, token: CancellationToken): Promise { + callCount++; + if (callCount === 1) { + assert.ok('called once'); + inFirstCall.open(); + await delayFirstResult.wait(); + await timeout(0); // wait for the simple scheduler to fire to check that we do actually get rescheduled + return null; + } + if (callCount === 2) { + assert.ok('called twice'); + secondResultProvided.open(); + return null; + } + assert.fail('Unexpected call'); + } + releaseDocumentSemanticTokens(resultId: string | undefined): void { + } + })); + + const textModel = disposables.add(modelService.createModel('Hello world', modeService.create('testMode'))); + + // wait for the provider to be called + await inFirstCall.wait(); + + // the provider is now in the provide call + // change the text buffer while the provider is running + textModel.applyEdits([{ range: new Range(1, 1, 1, 1), text: 'x' }]); + + // let the provider finish its first result + delayFirstResult.open(); + + // we need to check that the provider is called again, even if it returns null + await secondResultProvided.wait(); + + // assert that it got called twice + assert.strictEqual(callCount, 2); + }); +}); + function assertComputeEdits(lines1: string[], lines2: string[]): void { const model = createTextModel(lines1.join('\n')); const textBuffer = createTextBuffer(lines2.join('\n'), DefaultEndOfLine.LF).textBuffer; diff --git a/src/vs/platform/theme/test/common/testThemeService.ts b/src/vs/platform/theme/test/common/testThemeService.ts index 2bdd34d8eb0..e21487ef0a6 100644 --- a/src/vs/platform/theme/test/common/testThemeService.ts +++ b/src/vs/platform/theme/test/common/testThemeService.ts @@ -12,8 +12,11 @@ export class TestColorTheme implements IColorTheme { public readonly label = 'test'; - constructor(private colors: { [id: string]: string; } = {}, public type = ColorScheme.DARK) { - } + constructor( + private colors: { [id: string]: string; } = {}, + public type = ColorScheme.DARK, + public readonly semanticHighlighting = false + ) { } getColor(color: string, useDefault?: boolean): Color | undefined { let value = this.colors[color]; @@ -31,8 +34,6 @@ export class TestColorTheme implements IColorTheme { return undefined; } - readonly semanticHighlighting = false; - get tokenColorMap(): string[] { return []; } From 40e3106e5faad0b683fe0241963489ebb5825598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Thu, 14 Jan 2021 10:28:48 +0100 Subject: [PATCH 029/171] fix list drag affordance --- src/vs/base/browser/ui/list/list.css | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/base/browser/ui/list/list.css b/src/vs/base/browser/ui/list/list.css index 53857f4dad4..985d7367e32 100644 --- a/src/vs/base/browser/ui/list/list.css +++ b/src/vs/base/browser/ui/list/list.css @@ -64,6 +64,7 @@ border-radius: 10px; font-size: 12px; position: absolute; + z-index: 1000; } /* Type filter */ From f1cb1b27f3e1341e462b171f2ab8c8ad245cdafc Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Thu, 14 Jan 2021 10:28:57 +0100 Subject: [PATCH 030/171] format --- src/vs/base/browser/ui/list/list.css | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vs/base/browser/ui/list/list.css b/src/vs/base/browser/ui/list/list.css index 985d7367e32..396bf18fe72 100644 --- a/src/vs/base/browser/ui/list/list.css +++ b/src/vs/base/browser/ui/list/list.css @@ -33,7 +33,7 @@ .monaco-list-row { position: absolute; - box-sizing: border-box; + box-sizing: border-box; overflow: hidden; width: 100%; } @@ -49,7 +49,9 @@ } /* Focus */ -.monaco-list.element-focused, .monaco-list.selection-single, .monaco-list.selection-multiple { +.monaco-list.element-focused, +.monaco-list.selection-single, +.monaco-list.selection-multiple { outline: 0 !important; } From 00f8540d793cb5eac1333f35fd68a355d89639f0 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 10:35:30 +0100 Subject: [PATCH 031/171] Fixes #114332 `yarn` no longer compiles the smoke test as a postinstall script. This breaks the flow of running `yarn && yarn smoketest` to execute the smoketest. So change `yarn smoketest` to also do the compiling of the smoke test. But that generates too much extra work on the build machine, which needs to invoke `yarn smoketest` twice, once for Electron and once for web. To workaround that, `yarn smoketest-no-compile` is added, which can be used by the build machine to avoid needlessly compiling. While here, the nodejs version is already checked in the `yarn` preinstall script, so remove the check from the smoke test. --- build/azure-pipelines/darwin/product-build-darwin.yml | 4 ++-- package.json | 3 ++- test/smoke/src/main.ts | 5 ----- 3 files changed, 4 insertions(+), 8 deletions(-) diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml index 0ed02043210..15c8768e743 100644 --- a/build/azure-pipelines/darwin/product-build-darwin.yml +++ b/build/azure-pipelines/darwin/product-build-darwin.yml @@ -216,7 +216,7 @@ steps: set -e APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH) APP_NAME="`ls $APP_ROOT | head -n 1`" - yarn smoketest --build "$APP_ROOT/$APP_NAME" + yarn smoketest-no-compile --build "$APP_ROOT/$APP_NAME" continueOnError: true timeoutInMinutes: 5 displayName: Run smoke tests (Electron) @@ -225,7 +225,7 @@ steps: - script: | set -e VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \ - yarn smoketest --web --headless + yarn smoketest-no-compile --web --headless continueOnError: true timeoutInMinutes: 5 displayName: Run smoke tests (Browser) diff --git a/package.json b/package.json index 2a502db7611..aec331d3b9c 100644 --- a/package.json +++ b/package.json @@ -34,7 +34,8 @@ "7z": "7z", "update-grammars": "node build/npm/update-all-grammars.js", "update-localization-extension": "node build/npm/update-localization-extension.js", - "smoketest": "cd test/smoke && node test/index.js", + "smoketest": "cd test/smoke && yarn compile && node test/index.js", + "smoketest-no-compile": "cd test/smoke && node test/index.js", "download-builtin-extensions": "node build/lib/builtInExtensions.js", "monaco-compile-check": "tsc -p src/tsconfig.monaco.json --noEmit", "tsec-compile-check": "node node_modules/vscode-tsec/bin/tsec -p src/tsconfig.tsec.json", diff --git a/test/smoke/src/main.ts b/test/smoke/src/main.ts index 7864474af2b..cf3c02b0efb 100644 --- a/test/smoke/src/main.ts +++ b/test/smoke/src/main.ts @@ -34,11 +34,6 @@ import { setup as setupDataMultirootTests } from './areas/multiroot/multiroot.te import { setup as setupDataLocalizationTests } from './areas/workbench/localization.test'; import { setup as setupLaunchTests } from './areas/workbench/launch.test'; -if (!/^v10/.test(process.version) && !/^v12/.test(process.version)) { - console.error('Error: Smoketest must be run using Node 10/12. Currently running', process.version); - process.exit(1); -} - const tmpDir = tmp.dirSync({ prefix: 't' }) as { name: string; removeCallback: Function; }; const testDataPath = tmpDir.name; process.once('exit', () => rimraf.sync(testDataPath)); From 4e4d2484a740b009d02ceb95b64ec110e2f1768d Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 11:16:41 +0100 Subject: [PATCH 032/171] Extract `TestTextResourcePropertiesService` to its own file --- .../smartSelect/test/smartSelect.test.ts | 2 +- .../test/common/services/modelService.test.ts | 21 +-------------- .../testTextResourcePropertiesService.ts | 27 +++++++++++++++++++ .../contrib/debug/test/node/debugger.test.ts | 2 +- 4 files changed, 30 insertions(+), 22 deletions(-) create mode 100644 src/vs/editor/test/common/services/testTextResourcePropertiesService.ts diff --git a/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts b/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts index 4c566492b68..ab80f676f01 100644 --- a/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts +++ b/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts @@ -16,7 +16,7 @@ import { BracketSelectionRangeProvider } from 'vs/editor/contrib/smartSelect/bra import { provideSelectionRanges } from 'vs/editor/contrib/smartSelect/smartSelect'; import { CancellationToken } from 'vs/base/common/cancellation'; import { WordSelectionRangeProvider } from 'vs/editor/contrib/smartSelect/wordSelections'; -import { TestTextResourcePropertiesService } from 'vs/editor/test/common/services/modelService.test'; +import { TestTextResourcePropertiesService } from 'vs/editor/test/common/services/testTextResourcePropertiesService'; import { TestThemeService } from 'vs/platform/theme/test/common/testThemeService'; import { NullLogService } from 'vs/platform/log/common/log'; import { UndoRedoService } from 'vs/platform/undoRedo/common/undoRedoService'; diff --git a/src/vs/editor/test/common/services/modelService.test.ts b/src/vs/editor/test/common/services/modelService.test.ts index f5d0b7e69fd..23e0f8f2a1d 100644 --- a/src/vs/editor/test/common/services/modelService.test.ts +++ b/src/vs/editor/test/common/services/modelService.test.ts @@ -14,8 +14,6 @@ import { createStringBuilder } from 'vs/editor/common/core/stringBuilder'; import { DefaultEndOfLine, ITextModel } from 'vs/editor/common/model'; import { createTextBuffer } from 'vs/editor/common/model/textModel'; import { ModelSemanticColoring, ModelServiceImpl } from 'vs/editor/common/services/modelServiceImpl'; -import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService'; -import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { TestColorTheme, TestThemeService } from 'vs/platform/theme/test/common/testThemeService'; import { NullLogService } from 'vs/platform/log/common/log'; @@ -32,6 +30,7 @@ import { ColorScheme } from 'vs/platform/theme/common/theme'; import { ModesRegistry } from 'vs/editor/common/modes/modesRegistry'; import { IModelService } from 'vs/editor/common/services/modelService'; import { IModeService } from 'vs/editor/common/services/modeService'; +import { TestTextResourcePropertiesService } from 'vs/editor/test/common/services/testTextResourcePropertiesService'; const GENERATE_TESTS = false; @@ -529,21 +528,3 @@ assertComputeEdits(file1, file2); } } } - -export class TestTextResourcePropertiesService implements ITextResourcePropertiesService { - - declare readonly _serviceBrand: undefined; - - constructor( - @IConfigurationService private readonly configurationService: IConfigurationService, - ) { - } - - getEOL(resource: URI, language?: string): string { - const eol = this.configurationService.getValue('files.eol', { overrideIdentifier: language, resource }); - if (eol && eol !== 'auto') { - return eol; - } - return (platform.isLinux || platform.isMacintosh) ? '\n' : '\r\n'; - } -} diff --git a/src/vs/editor/test/common/services/testTextResourcePropertiesService.ts b/src/vs/editor/test/common/services/testTextResourcePropertiesService.ts new file mode 100644 index 00000000000..f5ac31d5ff4 --- /dev/null +++ b/src/vs/editor/test/common/services/testTextResourcePropertiesService.ts @@ -0,0 +1,27 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as platform from 'vs/base/common/platform'; +import { URI } from 'vs/base/common/uri'; +import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; + +export class TestTextResourcePropertiesService implements ITextResourcePropertiesService { + + declare readonly _serviceBrand: undefined; + + constructor( + @IConfigurationService private readonly configurationService: IConfigurationService, + ) { + } + + getEOL(resource: URI, language?: string): string { + const eol = this.configurationService.getValue('files.eol', { overrideIdentifier: language, resource }); + if (eol && eol !== 'auto') { + return eol; + } + return (platform.isLinux || platform.isMacintosh) ? '\n' : '\r\n'; + } +} diff --git a/src/vs/workbench/contrib/debug/test/node/debugger.test.ts b/src/vs/workbench/contrib/debug/test/node/debugger.test.ts index 68a34b4b14a..fd61d857b66 100644 --- a/src/vs/workbench/contrib/debug/test/node/debugger.test.ts +++ b/src/vs/workbench/contrib/debug/test/node/debugger.test.ts @@ -11,7 +11,7 @@ import { Debugger } from 'vs/workbench/contrib/debug/common/debugger'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { URI } from 'vs/base/common/uri'; import { ExecutableDebugAdapter } from 'vs/workbench/contrib/debug/node/debugAdapter'; -import { TestTextResourcePropertiesService } from 'vs/editor/test/common/services/modelService.test'; +import { TestTextResourcePropertiesService } from 'vs/editor/test/common/services/testTextResourcePropertiesService'; import { ExtensionIdentifier, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; From e9f6c35c17caa9204d2ab735a4d6545e0bab7280 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 11:20:41 +0100 Subject: [PATCH 033/171] Fixes #114146: Increase max BracketSelectionRangeProvider duration to 5s in unit tests --- src/vs/editor/contrib/smartSelect/bracketSelections.ts | 2 +- .../contrib/smartSelect/test/smartSelect.test.ts | 10 ++++++++++ 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/src/vs/editor/contrib/smartSelect/bracketSelections.ts b/src/vs/editor/contrib/smartSelect/bracketSelections.ts index 3842ad87b54..af7496f4ce0 100644 --- a/src/vs/editor/contrib/smartSelect/bracketSelections.ts +++ b/src/vs/editor/contrib/smartSelect/bracketSelections.ts @@ -26,7 +26,7 @@ export class BracketSelectionRangeProvider implements SelectionRangeProvider { return result; } - private static readonly _maxDuration = 30; + public static _maxDuration = 30; private static readonly _maxRounds = 2; private static _bracketsRightYield(resolve: () => void, round: number, model: ITextModel, pos: Position, ranges: Map>): void { diff --git a/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts b/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts index ab80f676f01..862a0febe3d 100644 --- a/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts +++ b/src/vs/editor/contrib/smartSelect/test/smartSelect.test.ts @@ -45,6 +45,16 @@ class MockJSMode extends MockMode { suite('SmartSelect', () => { + const OriginalBracketSelectionRangeProviderMaxDuration = BracketSelectionRangeProvider._maxDuration; + + suiteSetup(() => { + BracketSelectionRangeProvider._maxDuration = 5000; // 5 seconds + }); + + suiteTeardown(() => { + BracketSelectionRangeProvider._maxDuration = OriginalBracketSelectionRangeProviderMaxDuration; + }); + let modelService: ModelServiceImpl; let mode: MockJSMode; From 7a9bb5a44f9fc0dc51535959f6f15f8dd3d037cd Mon Sep 17 00:00:00 2001 From: isidor Date: Thu, 14 Jan 2021 11:34:51 +0100 Subject: [PATCH 034/171] breakpoints: inline action to edit condition. Render conditions for function breakpoints. Allow to edit conditions for function breakpoints fixes #113805 fixes #3646 --- .../contrib/debug/browser/breakpointsView.ts | 317 ++++++++++++------ .../contrib/debug/browser/debugCommands.ts | 4 +- .../contrib/debug/browser/debugService.ts | 7 +- .../debug/browser/media/debugViewlet.css | 2 +- .../workbench/contrib/debug/common/debug.ts | 11 +- .../contrib/debug/common/debugModel.ts | 12 +- .../contrib/debug/common/debugViewModel.ts | 20 +- .../debug/test/browser/breakpoints.test.ts | 4 +- .../contrib/debug/test/browser/mockDebug.ts | 118 +++---- 9 files changed, 296 insertions(+), 199 deletions(-) diff --git a/src/vs/workbench/contrib/debug/browser/breakpointsView.ts b/src/vs/workbench/contrib/debug/browser/breakpointsView.ts index bd7c4e0e56f..c129b52c328 100644 --- a/src/vs/workbench/contrib/debug/browser/breakpointsView.ts +++ b/src/vs/workbench/contrib/debug/browser/breakpointsView.ts @@ -6,7 +6,7 @@ import * as resources from 'vs/base/common/resources'; import * as dom from 'vs/base/browser/dom'; import { IAction } from 'vs/base/common/actions'; -import { IDebugService, IBreakpoint, CONTEXT_BREAKPOINTS_FOCUSED, State, DEBUG_SCHEME, IFunctionBreakpoint, IExceptionBreakpoint, IEnablement, IDebugModel, IDataBreakpoint, BREAKPOINTS_VIEW_ID, CONTEXT_BREAKPOINT_ITEM_TYPE, CONTEXT_EXCEPTION_BREAKPOINT_SUPPORTS_CONDITION, CONTEXT_BREAKPOINTS_EXIST, CONTEXT_DEBUGGERS_AVAILABLE, CONTEXT_IN_DEBUG_MODE, IBaseBreakpoint, IBreakpointEditorContribution, BREAKPOINT_EDITOR_CONTRIBUTION_ID } from 'vs/workbench/contrib/debug/common/debug'; +import { IDebugService, IBreakpoint, CONTEXT_BREAKPOINTS_FOCUSED, State, DEBUG_SCHEME, IFunctionBreakpoint, IExceptionBreakpoint, IEnablement, IDebugModel, IDataBreakpoint, BREAKPOINTS_VIEW_ID, CONTEXT_BREAKPOINT_ITEM_TYPE, CONTEXT_BREAKPOINT_SUPPORTS_CONDITION, CONTEXT_BREAKPOINTS_EXIST, CONTEXT_DEBUGGERS_AVAILABLE, CONTEXT_IN_DEBUG_MODE, IBaseBreakpoint, IBreakpointEditorContribution, BREAKPOINT_EDITOR_CONTRIBUTION_ID, CONTEXT_BREAKPOINT_INPUT_FOCUSED } from 'vs/workbench/contrib/debug/common/debug'; import { ExceptionBreakpoint, FunctionBreakpoint, Breakpoint, DataBreakpoint } from 'vs/workbench/contrib/debug/common/debugModel'; import { IContextMenuService, IContextViewService } from 'vs/platform/contextview/browser/contextView'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; @@ -24,7 +24,7 @@ import { IViewletViewOptions } from 'vs/workbench/browser/parts/views/viewsViewl import { attachInputBoxStyler } from 'vs/platform/theme/common/styler'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IEditorService, SIDE_GROUP, ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService'; -import { ViewPane } from 'vs/workbench/browser/parts/views/viewPane'; +import { ViewPane, ViewAction } from 'vs/workbench/browser/parts/views/viewPane'; import { ILabelService } from 'vs/platform/label/common/label'; import { IContextKeyService, ContextKeyEqualsExpr, IContextKey, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { Gesture } from 'vs/base/browser/touch'; @@ -61,6 +61,11 @@ export function getExpandedBodySize(model: IDebugModel, countLimit: number): num } type BreakpointItem = IBreakpoint | IFunctionBreakpoint | IDataBreakpoint | IExceptionBreakpoint; +interface InputBoxData { + breakpoint: IFunctionBreakpoint | IExceptionBreakpoint; + type: 'condition' | 'hitCount' | 'name'; +} + export class BreakpointsView extends ViewPane { private list!: WorkbenchList; @@ -68,7 +73,9 @@ export class BreakpointsView extends ViewPane { private ignoreLayout = false; private menu: IMenu; private breakpointItemType: IContextKey; - private exceptionBreakpointSupportsCondition: IContextKey; + private breakpointSupportsCondition: IContextKey; + private _inputBoxData: InputBoxData | undefined; + breakpointInputFocused: IContextKey; constructor( options: IViewletViewOptions, @@ -92,30 +99,25 @@ export class BreakpointsView extends ViewPane { this.menu = menuService.createMenu(MenuId.DebugBreakpointsContext, contextKeyService); this._register(this.menu); this.breakpointItemType = CONTEXT_BREAKPOINT_ITEM_TYPE.bindTo(contextKeyService); - this.exceptionBreakpointSupportsCondition = CONTEXT_EXCEPTION_BREAKPOINT_SUPPORTS_CONDITION.bindTo(contextKeyService); + this.breakpointSupportsCondition = CONTEXT_BREAKPOINT_SUPPORTS_CONDITION.bindTo(contextKeyService); + this.breakpointInputFocused = CONTEXT_BREAKPOINT_INPUT_FOCUSED.bindTo(contextKeyService); this._register(this.debugService.getModel().onDidChangeBreakpoints(() => this.onBreakpointsChange())); - this._register(this.debugService.getViewModel().onDidSelectBreakpoint(breakpoint => { - if (breakpoint) { - // Only react when a new breakpoint is selected - to reduce refresh, since other times a refresh is not needed - this.onBreakpointsChange(); - } - })); } - public renderBody(container: HTMLElement): void { + renderBody(container: HTMLElement): void { super.renderBody(container); this.element.classList.add('debug-pane'); container.classList.add('debug-breakpoints'); - const delegate = new BreakpointsDelegate(this.debugService); + const delegate = new BreakpointsDelegate(this); this.list = >this.instantiationService.createInstance(WorkbenchList, 'Breakpoints', container, delegate, [ - this.instantiationService.createInstance(BreakpointsRenderer), - new ExceptionBreakpointsRenderer(this.menu, this.debugService), - new ExceptionBreakpointInputRenderer(this.debugService, this.contextViewService, this.themeService), - this.instantiationService.createInstance(FunctionBreakpointsRenderer), + this.instantiationService.createInstance(BreakpointsRenderer, this.menu, this.breakpointSupportsCondition), + new ExceptionBreakpointsRenderer(this.menu, this.breakpointSupportsCondition, this.debugService), + new ExceptionBreakpointInputRenderer(this, this.debugService, this.contextViewService, this.themeService), + this.instantiationService.createInstance(FunctionBreakpointsRenderer, this.menu, this.breakpointSupportsCondition), this.instantiationService.createInstance(DataBreakpointsRenderer), - new FunctionBreakpointInputRenderer(this.debugService, this.contextViewService, this.themeService, this.labelService) + new FunctionBreakpointInputRenderer(this, this.debugService, this.contextViewService, this.themeService, this.labelService) ], { identityProvider: { getId: (element: IEnablement) => element.getId() }, multipleSelectionSupport: false, @@ -153,9 +155,9 @@ export class BreakpointsView extends ViewPane { if (e.element instanceof Breakpoint) { openBreakpointSource(e.element, e.sideBySide, e.editorOptions.preserveFocus || false, e.editorOptions.pinned || !e.editorOptions.preserveFocus, this.debugService, this.editorService); } - if (e.browserEvent instanceof MouseEvent && e.browserEvent.detail === 2 && e.element instanceof FunctionBreakpoint && e.element !== this.debugService.getViewModel().getSelectedBreakpoint()) { + if (e.browserEvent instanceof MouseEvent && e.browserEvent.detail === 2 && e.element instanceof FunctionBreakpoint && e.element !== this.inputBoxData?.breakpoint) { // double click - this.debugService.getViewModel().setSelectedBreakpoint(e.element); + this.renderInputBox({ breakpoint: e.element, type: 'name' }); } })); @@ -173,13 +175,23 @@ export class BreakpointsView extends ViewPane { })); } - public focus(): void { + focus(): void { super.focus(); if (this.list) { this.list.domFocus(); } } + renderInputBox(data: InputBoxData | undefined): void { + this._inputBoxData = data; + this.onBreakpointsChange(); + this._inputBoxData = undefined; + } + + get inputBoxData(): InputBoxData | undefined { + return this._inputBoxData; + } + protected layoutBody(height: number, width: number): void { if (this.ignoreLayout) { return; @@ -202,7 +214,9 @@ export class BreakpointsView extends ViewPane { const type = element instanceof Breakpoint ? 'breakpoint' : element instanceof ExceptionBreakpoint ? 'exceptionBreakpoint' : element instanceof FunctionBreakpoint ? 'functionBreakpoint' : element instanceof DataBreakpoint ? 'dataBreakpoint' : undefined; this.breakpointItemType.set(type); - this.exceptionBreakpointSupportsCondition.set(element instanceof ExceptionBreakpoint && element.supportsCondition); + const session = this.debugService.getViewModel().focusedSession; + const conditionNotSupported = (element instanceof ExceptionBreakpoint && !element.supportsCondition) || (session && session.capabilities.supportsConditionalBreakpoints); + this.breakpointSupportsCondition.set(!conditionNotSupported); const secondary: IAction[] = []; const actionsDisposable = createAndFillInContextMenuActions(this.menu, { arg: e.element, shouldForwardArgs: false }, { primary: [], secondary }, g => /^inline/.test(g)); @@ -251,7 +265,7 @@ export class BreakpointsView extends ViewPane { class BreakpointsDelegate implements IListVirtualDelegate { - constructor(private debugService: IDebugService) { + constructor(private view: BreakpointsView) { // noop } @@ -264,16 +278,16 @@ class BreakpointsDelegate implements IListVirtualDelegate { return BreakpointsRenderer.ID; } if (element instanceof FunctionBreakpoint) { - const selected = this.debugService.getViewModel().getSelectedBreakpoint(); - if (!element.name || (selected && selected.getId() === element.getId())) { + const inputBoxBreakpoint = this.view.inputBoxData?.breakpoint; + if (!element.name || (inputBoxBreakpoint && inputBoxBreakpoint.getId() === element.getId())) { return FunctionBreakpointInputRenderer.ID; } return FunctionBreakpointsRenderer.ID; } if (element instanceof ExceptionBreakpoint) { - const selected = this.debugService.getViewModel().getSelectedBreakpoint(); - if (selected && selected.getId() === element.getId()) { + const inputBoxBreakpoint = this.view.inputBoxData?.breakpoint; + if (inputBoxBreakpoint && inputBoxBreakpoint.getId() === element.getId()) { return ExceptionBreakpointInputRenderer.ID; } return ExceptionBreakpointsRenderer.ID; @@ -309,26 +323,31 @@ interface IExceptionBreakpointTemplateData extends IBaseBreakpointTemplateData { condition: HTMLElement; } +interface IFunctionBreakpointTemplateData extends IBaseBreakpointWithIconTemplateData { + condition: HTMLElement; +} + interface IFunctionBreakpointInputTemplateData { inputBox: InputBox; checkbox: HTMLInputElement; icon: HTMLElement; breakpoint: IFunctionBreakpoint; - reactedOnEvent: boolean; toDispose: IDisposable[]; + type: 'hitCount' | 'condition' | 'name'; } interface IExceptionBreakpointInputTemplateData { inputBox: InputBox; checkbox: HTMLInputElement; breakpoint: IExceptionBreakpoint; - reactedOnEvent: boolean; toDispose: IDisposable[]; } class BreakpointsRenderer implements IListRenderer { constructor( + private menu: IMenu, + private breakpointSupportsCondition: IContextKey, @IDebugService private readonly debugService: IDebugService, @ILabelService private readonly labelService: ILabelService ) { @@ -348,6 +367,7 @@ class BreakpointsRenderer implements IListRenderer { this.debugService.enableOrDisableBreakpoints(!data.context.enabled, data.context); })); @@ -358,6 +378,8 @@ class BreakpointsRenderer implements IListRenderer /^inline/.test(g))); + data.actionBar.clear(); + data.actionBar.push(primary, { icon: true, label: false }); + } + + disposeElement(_element: IBreakpoint, _index: number, templateData: IBreakpointTemplateData): void { + dispose(templateData.elementDisposable); } disposeTemplate(templateData: IBreakpointTemplateData): void { @@ -395,6 +428,7 @@ class ExceptionBreakpointsRenderer implements IListRenderer, private debugService: IDebugService ) { // noop @@ -437,6 +471,7 @@ class ExceptionBreakpointsRenderer implements IListRenderer /^inline/.test(g))); data.actionBar.clear(); data.actionBar.push(primary, { icon: true, label: false }); @@ -451,9 +486,11 @@ class ExceptionBreakpointsRenderer implements IListRenderer { +class FunctionBreakpointsRenderer implements IListRenderer { constructor( + private menu: IMenu, + private breakpointSupportsCondition: IContextKey, @IDebugService private readonly debugService: IDebugService, @ILabelService private readonly labelService: ILabelService ) { @@ -466,13 +503,16 @@ class FunctionBreakpointsRenderer implements IListRenderer { this.debugService.enableOrDisableBreakpoints(!data.context.enabled, data.context); })); @@ -481,11 +521,15 @@ class FunctionBreakpointsRenderer implements IListRenderer /^inline/.test(g))); + data.actionBar.clear(); + data.actionBar.push(primary, { icon: true, label: false }); } - disposeTemplate(templateData: IBaseBreakpointWithIconTemplateData): void { + disposeElement(_element: IFunctionBreakpoint, _index: number, templateData: IFunctionBreakpointTemplateData): void { + dispose(templateData.elementDisposable); + } + + disposeTemplate(templateData: IFunctionBreakpointTemplateData): void { dispose(templateData.toDispose); } } @@ -566,13 +624,12 @@ class DataBreakpointsRenderer implements IListRenderer { constructor( + private view: BreakpointsView, private debugService: IDebugService, private contextViewService: IContextViewService, private themeService: IThemeService, private labelService: ILabelService - ) { - // noop - } + ) { } static readonly ID = 'functionbreakpointinput'; @@ -589,22 +646,33 @@ class FunctionBreakpointInputRenderer implements IListRenderer { - if (!template.reactedOnEvent) { - template.reactedOnEvent = true; - this.debugService.getViewModel().setSelectedBreakpoint(undefined); - if (inputBox.value && (renamed || template.breakpoint.name)) { - this.debugService.renameFunctionBreakpoint(template.breakpoint.getId(), renamed ? inputBox.value : template.breakpoint.name); + const wrapUp = (success: boolean) => { + this.view.breakpointInputFocused.set(false); + const id = template.breakpoint.getId(); + + if (success) { + if (template.type === 'name') { + this.debugService.updateFunctionBreakpoint(id, { name: inputBox.value }); + } + if (template.type === 'condition') { + this.debugService.updateFunctionBreakpoint(id, { condition: inputBox.value }); + } + if (template.type === 'hitCount') { + this.debugService.updateFunctionBreakpoint(id, { hitCondition: inputBox.value }); + } + } else { + if (template.type === 'name' && !template.breakpoint.name) { + this.debugService.removeFunctionBreakpoints(id); } else { - this.debugService.removeFunctionBreakpoints(template.breakpoint.getId()); + this.view.renderInputBox(undefined); } } }; @@ -634,7 +702,7 @@ class FunctionBreakpointInputRenderer implements IListRenderer { data.inputBox.focus(); data.inputBox.select(); @@ -656,6 +739,7 @@ class FunctionBreakpointInputRenderer implements IListRenderer { constructor( + private view: BreakpointsView, private debugService: IDebugService, private contextViewService: IContextViewService, private themeService: IThemeService @@ -677,6 +761,7 @@ class ExceptionBreakpointInputRenderer implements IListRenderer { - if (!template.reactedOnEvent) { - template.reactedOnEvent = true; - this.debugService.getViewModel().setSelectedBreakpoint(undefined); - let newCondition = template.breakpoint.condition; - if (success) { - newCondition = inputBox.value !== '' ? inputBox.value : undefined; - } - this.debugService.setExceptionBreakpointCondition(template.breakpoint, newCondition); + this.view.breakpointInputFocused.set(false); + let newCondition = template.breakpoint.condition; + if (success) { + newCondition = inputBox.value !== '' ? inputBox.value : undefined; } + this.debugService.setExceptionBreakpointCondition(template.breakpoint, newCondition); }; toDispose.push(dom.addStandardDisposableListener(inputBox.inputElement, 'keydown', (e: IKeyboardEvent) => { @@ -720,7 +802,6 @@ class ExceptionBreakpointInputRenderer implements IListRenderer { - const debugService = accessor.get(IDebugService); - debugService.getViewModel().setSelectedBreakpoint(breakpoint); - } -}); - - -registerAction2(class extends Action2 { +registerAction2(class extends ViewAction { constructor() { super({ id: 'debug.editBreakpoint', - title: localize('editBreakpoint', "Edit Breakpoint..."), + viewId: BREAKPOINTS_VIEW_ID, + title: localize('editCondition', "Edit Condition..."), + icon: Codicon.edit, + precondition: CONTEXT_BREAKPOINT_SUPPORTS_CONDITION, menu: [{ id: MenuId.DebugBreakpointsContext, group: 'navigation', - order: 10, - when: ContextKeyExpr.or(CONTEXT_BREAKPOINT_ITEM_TYPE.isEqualTo('breakpoint'), CONTEXT_BREAKPOINT_ITEM_TYPE.isEqualTo('functionBreakpoint')) + order: 10 + }, { + id: MenuId.DebugBreakpointsContext, + group: 'inline', + order: 10 }] }); } - async run(accessor: ServicesAccessor, breakpoint: ExceptionBreakpoint): Promise { + async runInView(accessor: ServicesAccessor, view: BreakpointsView, breakpoint: ExceptionBreakpoint | Breakpoint | FunctionBreakpoint): Promise { const debugService = accessor.get(IDebugService); const editorService = accessor.get(IEditorService); if (breakpoint instanceof Breakpoint) { @@ -1132,7 +1201,49 @@ registerAction2(class extends Action2 { } } } else { - debugService.getViewModel().setSelectedBreakpoint(breakpoint); + view.renderInputBox({ breakpoint, type: 'condition' }); } } }); + + +registerAction2(class extends ViewAction { + constructor() { + super({ + id: 'debug.editFunctionBreakpoint', + viewId: BREAKPOINTS_VIEW_ID, + title: localize('editBreakpoint', "Edit Function Breakpoint..."), + menu: [{ + id: MenuId.DebugBreakpointsContext, + group: '1_breakpoints', + order: 10, + when: CONTEXT_BREAKPOINT_ITEM_TYPE.isEqualTo('functionBreakpoint') + }] + }); + } + + runInView(_accessor: ServicesAccessor, view: BreakpointsView, breakpoint: IFunctionBreakpoint) { + view.renderInputBox({ breakpoint, type: 'name' }); + } +}); + +registerAction2(class extends ViewAction { + constructor() { + super({ + id: 'debug.editFunctionBreakpointHitCount', + viewId: BREAKPOINTS_VIEW_ID, + title: localize('editHitCount', "Edit Hit Count..."), + precondition: CONTEXT_BREAKPOINT_SUPPORTS_CONDITION, + menu: [{ + id: MenuId.DebugBreakpointsContext, + group: 'navigation', + order: 20, + when: CONTEXT_BREAKPOINT_ITEM_TYPE.isEqualTo('functionBreakpoint') + }] + }); + } + + runInView(_accessor: ServicesAccessor, view: BreakpointsView, breakpoint: IFunctionBreakpoint) { + view.renderInputBox({ breakpoint, type: 'hitCount' }); + } +}); diff --git a/src/vs/workbench/contrib/debug/browser/debugCommands.ts b/src/vs/workbench/contrib/debug/browser/debugCommands.ts index ad88803c84c..3b353cd6118 100644 --- a/src/vs/workbench/contrib/debug/browser/debugCommands.ts +++ b/src/vs/workbench/contrib/debug/browser/debugCommands.ts @@ -9,7 +9,7 @@ import { List } from 'vs/base/browser/ui/list/listWidget'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { IListService } from 'vs/platform/list/browser/listService'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; -import { IDebugService, IEnablement, CONTEXT_BREAKPOINTS_FOCUSED, CONTEXT_WATCH_EXPRESSIONS_FOCUSED, CONTEXT_VARIABLES_FOCUSED, EDITOR_CONTRIBUTION_ID, IDebugEditorContribution, CONTEXT_IN_DEBUG_MODE, CONTEXT_EXPRESSION_SELECTED, CONTEXT_BREAKPOINT_SELECTED, IConfig, IStackFrame, IThread, IDebugSession, CONTEXT_DEBUG_STATE, IDebugConfiguration, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, REPL_VIEW_ID, CONTEXT_DEBUGGERS_AVAILABLE, State, getStateLabel } from 'vs/workbench/contrib/debug/common/debug'; +import { IDebugService, IEnablement, CONTEXT_BREAKPOINTS_FOCUSED, CONTEXT_WATCH_EXPRESSIONS_FOCUSED, CONTEXT_VARIABLES_FOCUSED, EDITOR_CONTRIBUTION_ID, IDebugEditorContribution, CONTEXT_IN_DEBUG_MODE, CONTEXT_EXPRESSION_SELECTED, IConfig, IStackFrame, IThread, IDebugSession, CONTEXT_DEBUG_STATE, IDebugConfiguration, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, REPL_VIEW_ID, CONTEXT_DEBUGGERS_AVAILABLE, State, getStateLabel, CONTEXT_BREAKPOINT_INPUT_FOCUSED } from 'vs/workbench/contrib/debug/common/debug'; import { Expression, Variable, Breakpoint, FunctionBreakpoint, DataBreakpoint } from 'vs/workbench/contrib/debug/common/debugModel'; import { IExtensionsViewPaneContainer, VIEWLET_ID as EXTENSIONS_VIEWLET_ID } from 'vs/workbench/contrib/extensions/common/extensions'; import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; @@ -525,7 +525,7 @@ export function registerCommands(): void { KeybindingsRegistry.registerCommandAndKeybindingRule({ id: 'debug.removeBreakpoint', weight: KeybindingWeight.WorkbenchContrib, - when: ContextKeyExpr.and(CONTEXT_BREAKPOINTS_FOCUSED, CONTEXT_BREAKPOINT_SELECTED.toNegated()), + when: ContextKeyExpr.and(CONTEXT_BREAKPOINTS_FOCUSED, CONTEXT_BREAKPOINT_INPUT_FOCUSED.toNegated()), primary: KeyCode.Delete, mac: { primary: KeyMod.CtrlCmd | KeyCode.Backspace }, handler: (accessor) => { diff --git a/src/vs/workbench/contrib/debug/browser/debugService.ts b/src/vs/workbench/contrib/debug/browser/debugService.ts index 6753ea9c7f3..30b922bf352 100644 --- a/src/vs/workbench/contrib/debug/browser/debugService.ts +++ b/src/vs/workbench/contrib/debug/browser/debugService.ts @@ -900,12 +900,11 @@ export class DebugService implements IDebugService { } addFunctionBreakpoint(name?: string, id?: string): void { - const newFunctionBreakpoint = this.model.addFunctionBreakpoint(name || '', id); - this.viewModel.setSelectedBreakpoint(newFunctionBreakpoint); + this.model.addFunctionBreakpoint(name || '', id); } - async renameFunctionBreakpoint(id: string, newFunctionName: string): Promise { - this.model.renameFunctionBreakpoint(id, newFunctionName); + async updateFunctionBreakpoint(id: string, update: { name?: string, hitCondition?: string, condition?: string }): Promise { + this.model.updateFunctionBreakpoint(id, update); this.debugStorage.storeBreakpoints(this.model); await this.sendFunctionBreakpoints(); } diff --git a/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css b/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css index e72a367d5a7..5487c7f7e11 100644 --- a/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css +++ b/src/vs/workbench/contrib/debug/browser/media/debugViewlet.css @@ -319,7 +319,7 @@ } .debug-pane .debug-breakpoints .breakpoint > .file-path, -.debug-pane .debug-breakpoints .breakpoint.exception > .condition { +.debug-pane .debug-breakpoints .breakpoint > .condition { opacity: 0.7; margin-left: 0.9em; flex: 1; diff --git a/src/vs/workbench/contrib/debug/common/debug.ts b/src/vs/workbench/contrib/debug/common/debug.ts index 3b429251050..835ee034693 100644 --- a/src/vs/workbench/contrib/debug/common/debug.ts +++ b/src/vs/workbench/contrib/debug/common/debug.ts @@ -50,11 +50,11 @@ export const CONTEXT_WATCH_EXPRESSIONS_FOCUSED = new RawContextKey('wat export const CONTEXT_WATCH_EXPRESSIONS_EXIST = new RawContextKey('watchExpressionsExist', false); export const CONTEXT_VARIABLES_FOCUSED = new RawContextKey('variablesFocused', true); export const CONTEXT_EXPRESSION_SELECTED = new RawContextKey('expressionSelected', false); -export const CONTEXT_BREAKPOINT_SELECTED = new RawContextKey('breakpointSelected', false); +export const CONTEXT_BREAKPOINT_INPUT_FOCUSED = new RawContextKey('breakpointInputFocused', false); export const CONTEXT_CALLSTACK_ITEM_TYPE = new RawContextKey('callStackItemType', undefined); export const CONTEXT_WATCH_ITEM_TYPE = new RawContextKey('watchItemType', undefined); export const CONTEXT_BREAKPOINT_ITEM_TYPE = new RawContextKey('breakpointItemType', undefined); -export const CONTEXT_EXCEPTION_BREAKPOINT_SUPPORTS_CONDITION = new RawContextKey('exceptionBreakpointSupportsCondition', false); +export const CONTEXT_BREAKPOINT_SUPPORTS_CONDITION = new RawContextKey('breakpointSupportsCondition', false); export const CONTEXT_LOADED_SCRIPTS_SUPPORTED = new RawContextKey('loadedScriptsSupported', false); export const CONTEXT_LOADED_SCRIPTS_ITEM_TYPE = new RawContextKey('loadedScriptsItemType', undefined); export const CONTEXT_FOCUSED_SESSION_IS_ATTACH = new RawContextKey('focusedSessionIsAttach', false); @@ -444,9 +444,7 @@ export interface IViewModel extends ITreeElement { readonly focusedStackFrame: IStackFrame | undefined; getSelectedExpression(): IExpression | undefined; - getSelectedBreakpoint(): IFunctionBreakpoint | IExceptionBreakpoint | undefined; setSelectedExpression(expression: IExpression | undefined): void; - setSelectedBreakpoint(functionBreakpoint: IFunctionBreakpoint | IExceptionBreakpoint | undefined): void; updateViews(): void; isMultiSessionView(): boolean; @@ -454,7 +452,6 @@ export interface IViewModel extends ITreeElement { onDidFocusSession: Event; onDidFocusStackFrame: Event<{ stackFrame: IStackFrame | undefined, explicit: boolean }>; onDidSelectExpression: Event; - onDidSelectBreakpoint: Event; onWillUpdateViews: Event; } @@ -852,10 +849,10 @@ export interface IDebugService { addFunctionBreakpoint(name?: string, id?: string): void; /** - * Renames an already existing function breakpoint. + * Updates an already existing function breakpoint. * Notifies debug adapter of breakpoint changes. */ - renameFunctionBreakpoint(id: string, newFunctionName: string): Promise; + updateFunctionBreakpoint(id: string, update: { name?: string, hitCondition?: string, condition?: string }): Promise; /** * Removes all function breakpoints. If id is passed only removes the function breakpoint with the passed id. diff --git a/src/vs/workbench/contrib/debug/common/debugModel.ts b/src/vs/workbench/contrib/debug/common/debugModel.ts index 5927016f99f..cf138272325 100644 --- a/src/vs/workbench/contrib/debug/common/debugModel.ts +++ b/src/vs/workbench/contrib/debug/common/debugModel.ts @@ -1244,10 +1244,18 @@ export class DebugModel implements IDebugModel { return newFunctionBreakpoint; } - renameFunctionBreakpoint(id: string, name: string): void { + updateFunctionBreakpoint(id: string, update: { name?: string, hitCondition?: string, condition?: string }): void { const functionBreakpoint = this.functionBreakpoints.find(fbp => fbp.getId() === id); if (functionBreakpoint) { - functionBreakpoint.name = name; + if (typeof update.name === 'string') { + functionBreakpoint.name = update.name; + } + if (typeof update.condition === 'string') { + functionBreakpoint.condition = update.condition; + } + if (typeof update.hitCondition === 'string') { + functionBreakpoint.hitCondition = update.hitCondition; + } this._onDidChangeBreakpoints.fire({ changed: [functionBreakpoint], sessionOnly: false }); } } diff --git a/src/vs/workbench/contrib/debug/common/debugViewModel.ts b/src/vs/workbench/contrib/debug/common/debugViewModel.ts index 95edb422d4d..a17e6118560 100644 --- a/src/vs/workbench/contrib/debug/common/debugViewModel.ts +++ b/src/vs/workbench/contrib/debug/common/debugViewModel.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { Event, Emitter } from 'vs/base/common/event'; -import { CONTEXT_EXPRESSION_SELECTED, IViewModel, IStackFrame, IDebugSession, IThread, IExpression, IFunctionBreakpoint, CONTEXT_BREAKPOINT_SELECTED, CONTEXT_LOADED_SCRIPTS_SUPPORTED, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_SET_VARIABLE_SUPPORTED, IExceptionBreakpoint, CONTEXT_MULTI_SESSION_DEBUG } from 'vs/workbench/contrib/debug/common/debug'; +import { CONTEXT_EXPRESSION_SELECTED, IViewModel, IStackFrame, IDebugSession, IThread, IExpression, CONTEXT_LOADED_SCRIPTS_SUPPORTED, CONTEXT_STEP_BACK_SUPPORTED, CONTEXT_FOCUSED_SESSION_IS_ATTACH, CONTEXT_RESTART_FRAME_SUPPORTED, CONTEXT_JUMP_TO_CURSOR_SUPPORTED, CONTEXT_STEP_INTO_TARGETS_SUPPORTED, CONTEXT_SET_VARIABLE_SUPPORTED, CONTEXT_MULTI_SESSION_DEBUG } from 'vs/workbench/contrib/debug/common/debug'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { isSessionAttach } from 'vs/workbench/contrib/debug/common/debugUtils'; @@ -16,14 +16,11 @@ export class ViewModel implements IViewModel { private _focusedSession: IDebugSession | undefined; private _focusedThread: IThread | undefined; private selectedExpression: IExpression | undefined; - private selectedBreakpoint: IFunctionBreakpoint | IExceptionBreakpoint | undefined; private readonly _onDidFocusSession = new Emitter(); private readonly _onDidFocusStackFrame = new Emitter<{ stackFrame: IStackFrame | undefined, explicit: boolean }>(); private readonly _onDidSelectExpression = new Emitter(); - private readonly _onDidSelectBreakpoint = new Emitter(); private readonly _onWillUpdateViews = new Emitter(); private expressionSelectedContextKey!: IContextKey; - private breakpointSelectedContextKey!: IContextKey; private loadedScriptsSupportedContextKey!: IContextKey; private stepBackSupportedContextKey!: IContextKey; private focusedSessionIsAttach!: IContextKey; @@ -36,7 +33,6 @@ export class ViewModel implements IViewModel { constructor(private contextKeyService: IContextKeyService) { contextKeyService.bufferChangeEvents(() => { this.expressionSelectedContextKey = CONTEXT_EXPRESSION_SELECTED.bindTo(contextKeyService); - this.breakpointSelectedContextKey = CONTEXT_BREAKPOINT_SELECTED.bindTo(contextKeyService); this.loadedScriptsSupportedContextKey = CONTEXT_LOADED_SCRIPTS_SUPPORTED.bindTo(contextKeyService); this.stepBackSupportedContextKey = CONTEXT_STEP_BACK_SUPPORTED.bindTo(contextKeyService); this.focusedSessionIsAttach = CONTEXT_FOCUSED_SESSION_IS_ATTACH.bindTo(contextKeyService); @@ -113,14 +109,6 @@ export class ViewModel implements IViewModel { return this._onDidSelectExpression.event; } - get onDidSelectBreakpoint(): Event { - return this._onDidSelectBreakpoint.event; - } - - getSelectedBreakpoint(): IFunctionBreakpoint | IExceptionBreakpoint | undefined { - return this.selectedBreakpoint; - } - updateViews(): void { this._onWillUpdateViews.fire(); } @@ -129,12 +117,6 @@ export class ViewModel implements IViewModel { return this._onWillUpdateViews.event; } - setSelectedBreakpoint(breakpoint: IFunctionBreakpoint | IExceptionBreakpoint | undefined): void { - this.selectedBreakpoint = breakpoint; - this.breakpointSelectedContextKey.set(!!breakpoint); - this._onDidSelectBreakpoint.fire(breakpoint); - } - isMultiSessionView(): boolean { return !!this.multiSessionDebug.get(); } diff --git a/src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts b/src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts index 1a2bed97418..fec15f39fa8 100644 --- a/src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts +++ b/src/vs/workbench/contrib/debug/test/browser/breakpoints.test.ts @@ -153,8 +153,8 @@ suite('Debug - Breakpoints', () => { test('function breakpoints', () => { model.addFunctionBreakpoint('foo', '1'); model.addFunctionBreakpoint('bar', '2'); - model.renameFunctionBreakpoint('1', 'fooUpdated'); - model.renameFunctionBreakpoint('2', 'barUpdated'); + model.updateFunctionBreakpoint('1', { name: 'fooUpdated' }); + model.updateFunctionBreakpoint('2', { name: 'barUpdated' }); const functionBps = model.getFunctionBreakpoints(); assert.equal(functionBps[0].name, 'fooUpdated'); diff --git a/src/vs/workbench/contrib/debug/test/browser/mockDebug.ts b/src/vs/workbench/contrib/debug/test/browser/mockDebug.ts index 48abf8237e5..a5be81b2c1d 100644 --- a/src/vs/workbench/contrib/debug/test/browser/mockDebug.ts +++ b/src/vs/workbench/contrib/debug/test/browser/mockDebug.ts @@ -24,29 +24,29 @@ export const mockUriIdentityService = new UriIdentityService(fileService); export class MockDebugService implements IDebugService { - public _serviceBrand: undefined; + _serviceBrand: undefined; - public get state(): State { + get state(): State { throw new Error('not implemented'); } - public get onWillNewSession(): Event { + get onWillNewSession(): Event { throw new Error('not implemented'); } - public get onDidNewSession(): Event { + get onDidNewSession(): Event { throw new Error('not implemented'); } - public get onDidEndSession(): Event { + get onDidEndSession(): Event { throw new Error('not implemented'); } - public get onDidChangeState(): Event { + get onDidChangeState(): Event { throw new Error('not implemented'); } - public getConfigurationManager(): IConfigurationManager { + getConfigurationManager(): IConfigurationManager { throw new Error('not implemented'); } @@ -58,7 +58,7 @@ export class MockDebugService implements IDebugService { throw new Error('Method not implemented.'); } - public focusStackFrame(focusedStackFrame: IStackFrame): Promise { + focusStackFrame(focusedStackFrame: IStackFrame): Promise { throw new Error('not implemented'); } @@ -66,23 +66,23 @@ export class MockDebugService implements IDebugService { throw new Error('not implemented'); } - public addBreakpoints(uri: uri, rawBreakpoints: IBreakpointData[]): Promise { + addBreakpoints(uri: uri, rawBreakpoints: IBreakpointData[]): Promise { throw new Error('not implemented'); } - public updateBreakpoints(uri: uri, data: Map, sendOnResourceSaved: boolean): Promise { + updateBreakpoints(uri: uri, data: Map, sendOnResourceSaved: boolean): Promise { throw new Error('not implemented'); } - public enableOrDisableBreakpoints(enabled: boolean): Promise { + enableOrDisableBreakpoints(enabled: boolean): Promise { throw new Error('not implemented'); } - public setBreakpointsActivated(): Promise { + setBreakpointsActivated(): Promise { throw new Error('not implemented'); } - public removeBreakpoints(): Promise { + removeBreakpoints(): Promise { throw new Error('not implemented'); } @@ -90,15 +90,15 @@ export class MockDebugService implements IDebugService { throw new Error('Method not implemented.'); } - public addFunctionBreakpoint(): void { } + addFunctionBreakpoint(): void { } - public moveWatchExpression(id: string, position: number): void { } + moveWatchExpression(id: string, position: number): void { } - public renameFunctionBreakpoint(id: string, newFunctionName: string): Promise { + updateFunctionBreakpoint(id: string, update: { name?: string, hitCondition?: string, condition?: string }): Promise { throw new Error('not implemented'); } - public removeFunctionBreakpoints(id?: string): Promise { + removeFunctionBreakpoints(id?: string): Promise { throw new Error('not implemented'); } @@ -109,47 +109,47 @@ export class MockDebugService implements IDebugService { throw new Error('Method not implemented.'); } - public addReplExpression(name: string): Promise { + addReplExpression(name: string): Promise { throw new Error('not implemented'); } - public removeReplExpressions(): void { } + removeReplExpressions(): void { } - public addWatchExpression(name?: string): Promise { + addWatchExpression(name?: string): Promise { throw new Error('not implemented'); } - public renameWatchExpression(id: string, newName: string): Promise { + renameWatchExpression(id: string, newName: string): Promise { throw new Error('not implemented'); } - public removeWatchExpressions(id?: string): void { } + removeWatchExpressions(id?: string): void { } - public startDebugging(launch: ILaunch, configOrName?: IConfig | string, options?: IDebugSessionOptions): Promise { + startDebugging(launch: ILaunch, configOrName?: IConfig | string, options?: IDebugSessionOptions): Promise { return Promise.resolve(true); } - public restartSession(): Promise { + restartSession(): Promise { throw new Error('not implemented'); } - public stopSession(): Promise { + stopSession(): Promise { throw new Error('not implemented'); } - public getModel(): IDebugModel { + getModel(): IDebugModel { throw new Error('not implemented'); } - public getViewModel(): IViewModel { + getViewModel(): IViewModel { throw new Error('not implemented'); } - public logToRepl(session: IDebugSession, value: string): void { } + logToRepl(session: IDebugSession, value: string): void { } - public sourceIsNotAvailable(uri: uri): void { } + sourceIsNotAvailable(uri: uri): void { } - public tryToAutoFocusStackFrame(thread: IThread): Promise { + tryToAutoFocusStackFrame(thread: IThread): Promise { throw new Error('not implemented'); } } @@ -391,14 +391,14 @@ export class MockRawSession { disconnected = false; sessionLengthInSeconds: number = 0; - public readyForBreakpoints = true; - public emittedStopped = true; + readyForBreakpoints = true; + emittedStopped = true; - public getLengthInSeconds(): number { + getLengthInSeconds(): number { return 100; } - public stackTrace(args: DebugProtocol.StackTraceArguments): Promise { + stackTrace(args: DebugProtocol.StackTraceArguments): Promise { return Promise.resolve({ seq: 1, type: 'response', @@ -416,19 +416,19 @@ export class MockRawSession { }); } - public exceptionInfo(args: DebugProtocol.ExceptionInfoArguments): Promise { + exceptionInfo(args: DebugProtocol.ExceptionInfoArguments): Promise { throw new Error('not implemented'); } - public launchOrAttach(args: IConfig): Promise { + launchOrAttach(args: IConfig): Promise { throw new Error('not implemented'); } - public scopes(args: DebugProtocol.ScopesArguments): Promise { + scopes(args: DebugProtocol.ScopesArguments): Promise { throw new Error('not implemented'); } - public variables(args: DebugProtocol.VariablesArguments): Promise { + variables(args: DebugProtocol.VariablesArguments): Promise { throw new Error('not implemented'); } @@ -436,87 +436,87 @@ export class MockRawSession { return Promise.resolve(null!); } - public custom(request: string, args: any): Promise { + custom(request: string, args: any): Promise { throw new Error('not implemented'); } - public terminate(restart = false): Promise { + terminate(restart = false): Promise { throw new Error('not implemented'); } - public disconnect(restart?: boolean): Promise { + disconnect(restart?: boolean): Promise { throw new Error('not implemented'); } - public threads(): Promise { + threads(): Promise { throw new Error('not implemented'); } - public stepIn(args: DebugProtocol.StepInArguments): Promise { + stepIn(args: DebugProtocol.StepInArguments): Promise { throw new Error('not implemented'); } - public stepOut(args: DebugProtocol.StepOutArguments): Promise { + stepOut(args: DebugProtocol.StepOutArguments): Promise { throw new Error('not implemented'); } - public stepBack(args: DebugProtocol.StepBackArguments): Promise { + stepBack(args: DebugProtocol.StepBackArguments): Promise { throw new Error('not implemented'); } - public continue(args: DebugProtocol.ContinueArguments): Promise { + continue(args: DebugProtocol.ContinueArguments): Promise { throw new Error('not implemented'); } - public reverseContinue(args: DebugProtocol.ReverseContinueArguments): Promise { + reverseContinue(args: DebugProtocol.ReverseContinueArguments): Promise { throw new Error('not implemented'); } - public pause(args: DebugProtocol.PauseArguments): Promise { + pause(args: DebugProtocol.PauseArguments): Promise { throw new Error('not implemented'); } - public terminateThreads(args: DebugProtocol.TerminateThreadsArguments): Promise { + terminateThreads(args: DebugProtocol.TerminateThreadsArguments): Promise { throw new Error('not implemented'); } - public setVariable(args: DebugProtocol.SetVariableArguments): Promise { + setVariable(args: DebugProtocol.SetVariableArguments): Promise { throw new Error('not implemented'); } - public restartFrame(args: DebugProtocol.RestartFrameArguments): Promise { + restartFrame(args: DebugProtocol.RestartFrameArguments): Promise { throw new Error('not implemented'); } - public completions(args: DebugProtocol.CompletionsArguments): Promise { + completions(args: DebugProtocol.CompletionsArguments): Promise { throw new Error('not implemented'); } - public next(args: DebugProtocol.NextArguments): Promise { + next(args: DebugProtocol.NextArguments): Promise { throw new Error('not implemented'); } - public source(args: DebugProtocol.SourceArguments): Promise { + source(args: DebugProtocol.SourceArguments): Promise { throw new Error('not implemented'); } - public loadedSources(args: DebugProtocol.LoadedSourcesArguments): Promise { + loadedSources(args: DebugProtocol.LoadedSourcesArguments): Promise { throw new Error('not implemented'); } - public setBreakpoints(args: DebugProtocol.SetBreakpointsArguments): Promise { + setBreakpoints(args: DebugProtocol.SetBreakpointsArguments): Promise { throw new Error('not implemented'); } - public setFunctionBreakpoints(args: DebugProtocol.SetFunctionBreakpointsArguments): Promise { + setFunctionBreakpoints(args: DebugProtocol.SetFunctionBreakpointsArguments): Promise { throw new Error('not implemented'); } - public setExceptionBreakpoints(args: DebugProtocol.SetExceptionBreakpointsArguments): Promise { + setExceptionBreakpoints(args: DebugProtocol.SetExceptionBreakpointsArguments): Promise { throw new Error('not implemented'); } - public readonly onDidStop: Event = null!; + readonly onDidStop: Event = null!; } export class MockDebugAdapter extends AbstractDebugAdapter { From 065f0e464057ff2aa39c79cbb307e90c5e822a7a Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Thu, 14 Jan 2021 14:30:35 +0100 Subject: [PATCH 035/171] Auto forwarding fix --- src/vs/workbench/api/browser/mainThreadTunnelService.ts | 6 +++++- .../services/remote/common/remoteExplorerService.ts | 7 ++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadTunnelService.ts b/src/vs/workbench/api/browser/mainThreadTunnelService.ts index a15866832ff..d9e49ccde8f 100644 --- a/src/vs/workbench/api/browser/mainThreadTunnelService.ts +++ b/src/vs/workbench/api/browser/mainThreadTunnelService.ts @@ -27,7 +27,11 @@ export class MainThreadTunnelService extends Disposable implements MainThreadTun } async $setCandidateFinder(): Promise { - this._register(this.remoteExplorerService.onEnabledPortsFeatures(() => this._proxy.$registerCandidateFinder())); + if (this.remoteExplorerService.portsFeaturesEnabled) { + this._proxy.$registerCandidateFinder(); + } else { + this._register(this.remoteExplorerService.onEnabledPortsFeatures(() => this._proxy.$registerCandidateFinder())); + } } async $openTunnel(tunnelOptions: TunnelOptions, source: string): Promise { diff --git a/src/vs/workbench/services/remote/common/remoteExplorerService.ts b/src/vs/workbench/services/remote/common/remoteExplorerService.ts index 46b638c4797..bb05dce6f40 100644 --- a/src/vs/workbench/services/remote/common/remoteExplorerService.ts +++ b/src/vs/workbench/services/remote/common/remoteExplorerService.ts @@ -305,11 +305,12 @@ export class TunnelModel extends Disposable { async restoreForwarded() { if (this.configurationService.getValue('remote.restoreForwardedPorts')) { if (this.tunnelRestoreValue) { - (JSON.parse(this.tunnelRestoreValue))?.forEach(tunnel => { + const tunnels = JSON.parse(this.tunnelRestoreValue) ?? []; + for (let tunnel of tunnels) { if (!mapHasAddressLocalhostOrAllInterfaces(this.detected, tunnel.remoteHost, tunnel.remotePort)) { - this.forward({ host: tunnel.remoteHost, port: tunnel.remotePort }, tunnel.localPort, tunnel.name, undefined, undefined, tunnel.privacy === TunnelPrivacy.Public); + await this.forward({ host: tunnel.remoteHost, port: tunnel.remotePort }, tunnel.localPort, tunnel.name, undefined, undefined, tunnel.privacy === TunnelPrivacy.Public); } - }); + } } } } From f8ec60aa06f4197e42df99a63046a42fb5e499a3 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Thu, 14 Jan 2021 06:04:03 -0800 Subject: [PATCH 036/171] Add flow control setting, remove fake latency --- .../api/browser/mainThreadTerminalService.ts | 7 ++++-- .../workbench/api/common/extHost.protocol.ts | 1 + .../api/node/extHostTerminalService.ts | 3 ++- .../terminal/browser/terminalInstance.ts | 6 ++--- .../browser/terminalProcessManager.ts | 10 +++++++-- .../contrib/terminal/common/terminal.ts | 6 +++++ .../terminal/common/terminalConfiguration.ts | 5 +++++ .../contrib/terminal/node/terminalProcess.ts | 22 ++++++++++--------- 8 files changed, 42 insertions(+), 18 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadTerminalService.ts b/src/vs/workbench/api/browser/mainThreadTerminalService.ts index 1888982a193..167eb17fc8e 100644 --- a/src/vs/workbench/api/browser/mainThreadTerminalService.ts +++ b/src/vs/workbench/api/browser/mainThreadTerminalService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { DisposableStore, Disposable, IDisposable } from 'vs/base/common/lifecycle'; -import { IShellLaunchConfig, ITerminalProcessExtHostProxy, ISpawnExtHostProcessRequest, ITerminalDimensions, IAvailableShellsRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest } from 'vs/workbench/contrib/terminal/common/terminal'; +import { IShellLaunchConfig, ITerminalProcessExtHostProxy, ISpawnExtHostProcessRequest, ITerminalDimensions, IAvailableShellsRequest, IDefaultShellAndArgsRequest, IStartExtensionTerminalRequest, ITerminalConfiguration, TERMINAL_CONFIG_SECTION } from 'vs/workbench/contrib/terminal/common/terminal'; import { ExtHostContext, ExtHostTerminalServiceShape, MainThreadTerminalServiceShape, MainContext, IExtHostContext, IShellLaunchConfigDto, TerminalLaunchConfig, ITerminalDimensionsDto, TerminalIdentifier } from 'vs/workbench/api/common/extHost.protocol'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { URI } from 'vs/base/common/uri'; @@ -16,6 +16,7 @@ import { TerminalDataBufferer } from 'vs/workbench/contrib/terminal/common/termi import { IEnvironmentVariableService, ISerializableEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariable'; import { deserializeEnvironmentVariableCollection, serializeEnvironmentVariableCollection } from 'vs/workbench/contrib/terminal/common/environmentVariableShared'; import { ILogService } from 'vs/platform/log/common/log'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @extHostNamedCustomer(MainContext.MainThreadTerminalService) export class MainThreadTerminalService implements MainThreadTerminalServiceShape { @@ -46,6 +47,7 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape @IRemoteAgentService private readonly _remoteAgentService: IRemoteAgentService, @IInstantiationService private readonly _instantiationService: IInstantiationService, @IEnvironmentVariableService private readonly _environmentVariableService: IEnvironmentVariableService, + @IConfigurationService private readonly _configurationService: IConfigurationService, @ILogService private readonly _logService: ILogService, ) { this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostTerminalService); @@ -259,7 +261,8 @@ export class MainThreadTerminalService implements MainThreadTerminalServiceShape executable: request.shellLaunchConfig.executable, args: request.shellLaunchConfig.args, cwd: request.shellLaunchConfig.cwd, - env: request.shellLaunchConfig.env + env: request.shellLaunchConfig.env, + flowControl: this._configurationService.getValue(TERMINAL_CONFIG_SECTION).flowControl }; this._logService.trace('Spawning ext host process', { terminalId: proxy.terminalId, shellLaunchConfigDto, request }); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index d3a5b973021..6777ffa6cea 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -1506,6 +1506,7 @@ export interface IShellLaunchConfigDto { cwd?: string | UriComponents; env?: { [key: string]: string | null; }; hideFromUser?: boolean; + flowControl?: boolean; } export interface IShellDefinitionDto { diff --git a/src/vs/workbench/api/node/extHostTerminalService.ts b/src/vs/workbench/api/node/extHostTerminalService.ts index 127814dbb0a..adad271b38f 100644 --- a/src/vs/workbench/api/node/extHostTerminalService.ts +++ b/src/vs/workbench/api/node/extHostTerminalService.ts @@ -149,7 +149,8 @@ export class ExtHostTerminalService extends BaseExtHostTerminalService { executable: shellLaunchConfigDto.executable, args: shellLaunchConfigDto.args, cwd: typeof shellLaunchConfigDto.cwd === 'string' ? shellLaunchConfigDto.cwd : URI.revive(shellLaunchConfigDto.cwd), - env: shellLaunchConfigDto.env + env: shellLaunchConfigDto.env, + flowControl: shellLaunchConfigDto.flowControl }; // Merge in shell and args from settings diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 83f70c934b7..59eee00f4d9 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -1022,9 +1022,9 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { const messageId = ++this._latestXtermWriteData; this._xterm?.write(ev.data, () => { this._latestXtermParseData = messageId; - // TODO: Disable for local processes? - // TODO: We don't need to ack everything, just count on the other side and ack every 1000/10000 bytes - this._processManager.acknowledgeDataEvent(ev.data.length); + if (this._shellLaunchConfig.flowControl) { + this._processManager.acknowledgeDataEvent(ev.data.length); + } }); } } diff --git a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts index b783fec1988..1fe02f4fed4 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalProcessManager.ts @@ -133,7 +133,10 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce rows: number, isScreenReaderModeEnabled: boolean ): Promise { + shellLaunchConfig.flowControl = this._configHelper.config.flowControl; if (shellLaunchConfig.isExtensionTerminal) { + // Flow control is not supported for extension terminals + shellLaunchConfig.flowControl = false; this._processType = ProcessType.ExtensionTerminal; this._process = this._instantiationService.createInstance(TerminalProcessExtHostProxy, this._terminalId, shellLaunchConfig, undefined, cols, rows, this._configHelper); } else { @@ -169,7 +172,10 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce this._process = this._instantiationService.createInstance(TerminalProcessExtHostProxy, this._terminalId, shellLaunchConfig, activeWorkspaceRootUri, cols, rows, this._configHelper); } } else { - this._process = await this._launchProcess(shellLaunchConfig, cols, rows, this.userHome, isScreenReaderModeEnabled); + // Flow control is not needed for ptys hosted in the same process (ie. the electron + // renderer). + shellLaunchConfig.flowControl = false; + this._process = await this._launchLocalProcess(shellLaunchConfig, cols, rows, this.userHome, isScreenReaderModeEnabled); } } @@ -223,7 +229,7 @@ export class TerminalProcessManager extends Disposable implements ITerminalProce return undefined; } - private async _launchProcess( + private async _launchLocalProcess( shellLaunchConfig: IShellLaunchConfig, cols: number, rows: number, diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index 78f4ef2a552..40e4f9f8963 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -138,6 +138,7 @@ export interface ITerminalConfiguration { localEchoStyle: 'bold' | 'dim' | 'italic' | 'underlined' | 'inverted' | string; serverSpawn: boolean; enablePersistentSessions: boolean; + flowControl: boolean; } export const DEFAULT_LOCAL_ECHO_EXCLUDE: ReadonlyArray = ['vim', 'vi', 'nano', 'tmux']; @@ -287,6 +288,11 @@ export interface IShellLaunchConfig { * a terminal used to drive some VS Code feature. */ isFeatureTerminal?: boolean; + + /** + * Whether flow control is enabled for this terminal. + */ + flowControl?: boolean; } /** diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index d2fe5d11fec..23ad043b2b2 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -397,6 +397,11 @@ export const terminalConfiguration: IConfigurationNode = { description: localize('terminal.integrated.enablePersistentSessions', "Experimental: persist terminal sessions for the workspace across window reloads. Currently only supported in VS Code Remote workspaces."), type: 'boolean', default: true + }, + 'terminal.integrated.flowControl': { + description: localize('terminal.integrated.flowControl', "Experimental: whether to enable flow control which will slow the program on the remote side to avoid flooding remote connections with terminal output. This setting has no effect for local terminals and terminals where the output/input is controlled by an extension. Changing this will only affect new terminals."), + type: 'boolean', + default: false } } }; diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index 26c3c1f429e..04e1cbc797c 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -167,17 +167,16 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess this.onProcessReady(() => c()); }); ptyProcess.onData(data => { - const fakeLatency = 1000; - this._unacknowledgedCharCount += data.length; - setTimeout(() => { - this._onProcessData.fire(data); - }, fakeLatency); - if (!this._isPtyPaused && this._unacknowledgedCharCount > FlowControlConstants.HighWatermarkChars) { - console.log(`pause (${this._unacknowledgedCharCount} > ${FlowControlConstants.HighWatermarkChars}`); - this._isPtyPaused = true; - // TODO: Expose as public API in node-pty - (ptyProcess as any).pause(); + if (this._shellLaunchConfig.flowControl) { + this._unacknowledgedCharCount += data.length; + if (!this._isPtyPaused && this._unacknowledgedCharCount > FlowControlConstants.HighWatermarkChars) { + console.log(`pause (${this._unacknowledgedCharCount} > ${FlowControlConstants.HighWatermarkChars}`); + this._isPtyPaused = true; + // TODO: Expose as public API in node-pty + (ptyProcess as any).pause(); + } } + this._onProcessData.fire(data); if (this._closeTimeout) { clearTimeout(this._closeTimeout); this._queueProcessExit(); @@ -340,6 +339,9 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess } public acknowledgeDataEvent(charCount: number): void { + if (!this._shellLaunchConfig.flowControl) { + return; + } // Prevent lower than 0 to heal from errors this._unacknowledgedCharCount = Math.max(this._unacknowledgedCharCount - charCount, 0); console.log(`Ack ${charCount} chars (unacknowledged: ${this._unacknowledgedCharCount})`); From a79276dc649e921c043d28594262cea938b5f180 Mon Sep 17 00:00:00 2001 From: Daniel Imms Date: Thu, 14 Jan 2021 06:17:29 -0800 Subject: [PATCH 037/171] Move to log service --- src/vs/workbench/contrib/terminal/node/terminalProcess.ts | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index 04e1cbc797c..4d7816c1ea9 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -170,7 +170,7 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess if (this._shellLaunchConfig.flowControl) { this._unacknowledgedCharCount += data.length; if (!this._isPtyPaused && this._unacknowledgedCharCount > FlowControlConstants.HighWatermarkChars) { - console.log(`pause (${this._unacknowledgedCharCount} > ${FlowControlConstants.HighWatermarkChars}`); + this._logService.trace(`Flow control: Pause (${this._unacknowledgedCharCount} > ${FlowControlConstants.HighWatermarkChars})`); this._isPtyPaused = true; // TODO: Expose as public API in node-pty (ptyProcess as any).pause(); @@ -344,9 +344,9 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess } // Prevent lower than 0 to heal from errors this._unacknowledgedCharCount = Math.max(this._unacknowledgedCharCount - charCount, 0); - console.log(`Ack ${charCount} chars (unacknowledged: ${this._unacknowledgedCharCount})`); + this._logService.trace(`Flow control: Ack ${charCount} chars (unacknowledged: ${this._unacknowledgedCharCount})`); if (this._isPtyPaused && this._unacknowledgedCharCount < FlowControlConstants.LowWatermarkChars) { - console.log(`Resume (${this._unacknowledgedCharCount} < ${FlowControlConstants.LowWatermarkChars})`); + this._logService.trace(`Flow control: Resume (${this._unacknowledgedCharCount} < ${FlowControlConstants.LowWatermarkChars})`); // TODO: Expose as public API in node-pty (this._ptyProcess as any).resume(); this._isPtyPaused = false; From cc8c9a2230de9f65b106391a9f3ef9f4e4c70088 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 15:41:13 +0100 Subject: [PATCH 038/171] No need to store scores --- src/vs/base/common/filters.ts | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/vs/base/common/filters.ts b/src/vs/base/common/filters.ts index 3024e0770c9..1b67449821f 100644 --- a/src/vs/base/common/filters.ts +++ b/src/vs/base/common/filters.ts @@ -440,7 +440,6 @@ const _minWordMatchPos = initArr(2 * _maxLen); // min word position for a certai const _maxWordMatchPos = initArr(2 * _maxLen); // max word position for a certain pattern position const _diag = initTable(); // the length of a contiguous diagonal match const _table = initTable(); -const _scores = initTable(); const _arrows = initTable(); const _debug = false; @@ -469,7 +468,7 @@ function printTables(pattern: string, patternStart: number, word: string, wordSt word = word.substr(wordStart); console.log(printTable(_table, pattern, pattern.length, word, word.length)); console.log(printTable(_arrows, pattern, pattern.length, word, word.length)); - console.log(printTable(_scores, pattern, pattern.length, word, word.length)); + console.log(printTable(_diag, pattern, pattern.length, word, word.length)); } function isSeparatorAtPos(value: string, index: number): boolean { @@ -607,7 +606,6 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu for (column = minWordMatchPos - wordStart + 1, wordPos = minWordMatchPos; wordPos < nextMaxWordMatchPos; column++, wordPos++) { const score = (wordPos > maxWordMatchPos ? -1 : _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos)); - _scores[row][column] = score; if (patternPos === patternStart && score > 1) { hasStrongFirstMatch = true; @@ -710,8 +708,8 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu // Overturn the "forwards" decision if keeping the "backwards" diagonal would give a better match if ( - _scores[row][column] > 0 // only if we can do a contiguous match diagonally - && backwardsDiagLength > 1 // only if we would have a contiguous match of 3 characters + backwardsDiagLength > 1 // only if we would have a contiguous match of 3 characters + && patternLow[patternStart + row - 1] === wordLow[wordStart + column - 1] // only if we can do a contiguous match diagonally && !isUpperCaseAtPos(diagColumn + wordStart - 1, word, wordLow) // only if the forwards chose diagonal is not an uppercase && backwardsDiagLength + 1 > _diag[row][diagColumn] // only if our contiguous match would be longer than the "forwards" contiguous match ) { From d6f27b927191385d46438dd73f27312bf9c99c54 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Thu, 14 Jan 2021 16:18:01 +0100 Subject: [PATCH 039/171] Polishing/fixing/addressing feedback for portsAttributes Includes: - fix in json schema - use object instead of array - change label of already forwarded ports when setting changed - fix for merging ranges --- .../remote/common/remote.contribution.ts | 63 ++++++++++--------- .../remote/common/remoteExplorerService.ts | 46 ++++++++++---- 2 files changed, 66 insertions(+), 43 deletions(-) diff --git a/src/vs/workbench/contrib/remote/common/remote.contribution.ts b/src/vs/workbench/contrib/remote/common/remote.contribution.ts index 8ecdf7fcad4..3ab0a658b80 100644 --- a/src/vs/workbench/contrib/remote/common/remote.contribution.ts +++ b/src/vs/workbench/contrib/remote/common/remote.contribution.ts @@ -135,41 +135,42 @@ Registry.as(ConfigurationExtensions.Configuration) default: true }, 'remote.portsAttributes': { - type: 'array', - description: localize('remote.portsAttributes', "Allows setting of default properties that are set when a specific port number is forwarded."), - items: { - type: 'object', - properties: { - 'port': { - type: 'string', - pattern: '^\\d+(\\-\\d+)?$', - description: localize('remote.portsAttributes.port', "The port, or range of ports, that these attributes should apply to."), - default: '0-65535' + type: 'object', + patternProperties: { + '^\\d+(\\-\\d+)?$': { + type: 'object', + description: localize('remote.portsAttributes.port', "A port, or range of ports (ex. \"40000-55000\") that the attributes should apply to"), + properties: { + 'onAutoForward': { + type: 'string', + enum: ['notify', 'open', 'silent', 'ignore'], + enumDescriptions: [ + localize('remote.portsAttributes.notify', "Shows a notification when a port is automatically forwarded."), + localize('remote.portsAttributes.open', "Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."), + localize('remote.portsAttributes.silent', "Shows no notification and takes no action when this port is automatically forwarded."), + localize('remote.portsAttributes.ignore', "This port will not be automatically forwarded.") + ], + description: localize('remote.portsAttributes.onForward', "Defines the action that occurs when the port is discovered for automatic forwarding"), + default: 'notify' + }, + 'elevateIfNeeded': { + type: 'boolean', + description: localize('remote.portsAttributes.elevateIfNeeded', "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."), + default: false + }, + 'label': { + type: 'string', + description: localize('remote.portsAttributes.label', "Label that will be shown in the UI for this port."), + default: localize('remote.portsAttributes.labelDefault', "Labeled Port") + } }, - 'onAutoForward': { - type: 'string', - enum: ['notify', 'open', 'silent', 'ignore'], - enumDescriptions: [ - localize('remote.portsAttributes.notify', "Shows a notification when a port is automatically forwarded."), - localize('remote.portsAttributes.open', "Opens the browser when the port is automatically forwarded. Depending on your settings, this could open an embedded browser."), - localize('remote.portsAttributes.silent', "Shows no notification and takes no action when this port is automatically forwarded."), - localize('remote.portsAttributes.ignore', "This port will not be automatically forwarded.") - ], - description: localize('remote.portsAttributes.onForward', "Defines the action that occurs when the port is discovered for automatic forwarding"), - default: 'notify' - }, - 'elevateIfNeeded': { - type: 'boolean', - description: localize('remote.portsAttributes.elevateIfNeeded', "Automatically prompt for elevation (if needed) when this port is forwarded. Elevate is required if the local port is a privileged port."), - default: false + default: { + 'label': localize('remote.portsAttributes.labelDefault', "Labeled Port"), + 'onAutoForward': 'notify' } } }, - default: [{ - 'port': '3000', - 'onAutoForward': 'notify', - 'elevateIfNeeded': false - }] + markdownDescription: localize('remote.portsAttributes', "Allows setting of default properties that are set when a specific port number is forwarded. For example:\n\n```\n\"3000\": {\n \"label\": \"Labeled Port\"\n},\n\"40000-55000\": {\n \"onAutoForward\": \"ignore\"\n}\n```") } } }); diff --git a/src/vs/workbench/services/remote/common/remoteExplorerService.ts b/src/vs/workbench/services/remote/common/remoteExplorerService.ts index bb05dce6f40..b8fb1244cda 100644 --- a/src/vs/workbench/services/remote/common/remoteExplorerService.ts +++ b/src/vs/workbench/services/remote/common/remoteExplorerService.ts @@ -15,7 +15,7 @@ import { TunnelInformation, TunnelDescription, IRemoteAuthorityResolverService } import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IAddressProvider } from 'vs/platform/remote/common/remoteAgentConnection'; import { ThemeIcon } from 'vs/platform/theme/common/themeService'; -import { isNumber, isString } from 'vs/base/common/types'; +import { isNumber, isObject, isString } from 'vs/base/common/types'; export const IRemoteExplorerService = createDecorator('remoteExplorerService'); export const REMOTE_EXPLORER_TYPE_KEY: string = 'remote.explorerType'; @@ -133,16 +133,24 @@ interface PortAttributes extends Attributes { export class PortsAttributes extends Disposable { private static SETTING = 'remote.portsAttributes'; - private static RANGE = /^\d+\-\d+$/; - private portsAttributes: PortAttributes[]; + private static RANGE = /^(\d+)\-(\d+)$/; + private portsAttributes: PortAttributes[] = []; + private _onDidChangeAttributes = new Emitter(); + public readonly onDidChangeAttributes = this._onDidChangeAttributes.event; + constructor(private readonly configurationService: IConfigurationService) { super(); this._register(configurationService.onDidChangeConfiguration(e => { if (e.affectsConfiguration(PortsAttributes.SETTING)) { - this.portsAttributes = this.readSetting(); + this.updateAttributes(); } })); + this.updateAttributes(); + } + + private updateAttributes() { this.portsAttributes = this.readSetting(); + this._onDidChangeAttributes.fire(); } getAttributes(port: number): Attributes | undefined { @@ -177,25 +185,27 @@ export class PortsAttributes extends Disposable { return -1; } const sliced = attributes.slice(fromIndex); - return sliced.findIndex((value) => { + const foundIndex = sliced.findIndex((value) => { return isNumber(value.port) ? (value.port === port) : (port >= value.port.start && port <= value.port.end); }); + return foundIndex >= 0 ? foundIndex + fromIndex : -1; } private readSetting(): PortAttributes[] { const settingValue = this.configurationService.getValue(PortsAttributes.SETTING); - if (!settingValue || !Array.isArray(settingValue)) { + if (!settingValue || !isObject(settingValue)) { return []; } const attributes: PortAttributes[] = []; - for (let setting of settingValue) { + for (let portNumber in settingValue) { + const setting = (settingValue)[portNumber]; let port: number | { start: number, end: number } | undefined = undefined; - if (setting.port !== undefined) { - if (Number(setting.port)) { - port = Number(setting.port); - } else if (isString(setting.port) && PortsAttributes.RANGE.test(setting.port)) { - const match = (setting.port).match(PortsAttributes.RANGE); + if (portNumber !== undefined) { + if (Number(portNumber)) { + port = Number(portNumber); + } else if (isString(portNumber) && PortsAttributes.RANGE.test(portNumber)) { + const match = (portNumber).match(PortsAttributes.RANGE); port = { start: Number(match![1]), end: Number(match![2]) }; } } @@ -296,6 +306,8 @@ export class TunnelModel extends Disposable { this._onClosePort.fire(address); } })); + + this._register(this.portsAttributes.onDidChangeAttributes(this.updateAttributes, this)); } private makeTunnelPrivacy(isPublic: boolean) { @@ -469,6 +481,16 @@ export class TunnelModel extends Disposable { get candidatesOrUndefined(): CandidatePort[] | undefined { return this._candidates ? this.candidates : undefined; } + + private updateAttributes() { + // If the label changes in the attributes, we should update it. + for (let forwarded of this.forwarded.values()) { + const attributes = this.portsAttributes.getAttributes(forwarded.remotePort); + if (attributes && attributes.label && attributes.label !== forwarded.name) { + this.name(forwarded.remoteHost, forwarded.remotePort, attributes.label); + } + } + } } export interface CandidatePort { From 3e6535d882cc156bb4a6180e31eb8caeaeba267e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 14 Jan 2021 17:09:22 +0100 Subject: [PATCH 040/171] shared process - implement message port connections and wire in --- src/vs/base/parts/ipc/browser/ipc.mp.ts | 22 +++++ src/vs/base/parts/ipc/common/ipc.electron.ts | 2 +- src/vs/base/parts/ipc/common/ipc.mp.ts | 89 +++++++++++++++++++ src/vs/base/parts/ipc/electron-main/ipc.mp.ts | 52 +++++++++++ .../ipc/electron-sandbox/ipc.electron.ts | 2 +- .../base/parts/ipc/electron-sandbox/ipc.mp.ts | 45 ++++++++++ .../sharedProcess/sharedProcessMain.ts | 75 +++------------- src/vs/code/electron-main/app.ts | 26 +++--- src/vs/code/electron-main/sharedProcess.ts | 83 +++++++++++------ src/vs/code/electron-main/window.ts | 2 +- .../issue/issueReporterMain.ts | 4 +- .../processExplorer/processExplorerMain.ts | 4 +- .../electron-sandbox/mainProcessService.ts | 29 +++++- .../electron-browser/desktop.main.ts | 4 +- .../electron-sandbox/desktop.main.ts | 4 +- .../electron-browser/sharedProcessService.ts | 60 +++++++++---- 16 files changed, 372 insertions(+), 131 deletions(-) create mode 100644 src/vs/base/parts/ipc/browser/ipc.mp.ts create mode 100644 src/vs/base/parts/ipc/common/ipc.mp.ts create mode 100644 src/vs/base/parts/ipc/electron-main/ipc.mp.ts create mode 100644 src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts diff --git a/src/vs/base/parts/ipc/browser/ipc.mp.ts b/src/vs/base/parts/ipc/browser/ipc.mp.ts new file mode 100644 index 00000000000..a5871ddbf52 --- /dev/null +++ b/src/vs/base/parts/ipc/browser/ipc.mp.ts @@ -0,0 +1,22 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { IDisposable } from 'vs/base/common/lifecycle'; +import { Client as MessagePortClient } from 'vs/base/parts/ipc/common/ipc.mp'; + +/** + * An implementation of a `IPCClient` on top of DOM `MessagePort`. + */ +export class Client extends MessagePortClient implements IDisposable { + + /** + * @param clientId a way to uniquely identify this client among + * other clients. this is important for routing because every + * client can also be a server + */ + constructor(port: MessagePort, clientId: string) { + super(port, clientId); + } +} diff --git a/src/vs/base/parts/ipc/common/ipc.electron.ts b/src/vs/base/parts/ipc/common/ipc.electron.ts index 52d8c99575d..ae5a30a8af7 100644 --- a/src/vs/base/parts/ipc/common/ipc.electron.ts +++ b/src/vs/base/parts/ipc/common/ipc.electron.ts @@ -28,7 +28,7 @@ export class Protocol implements IMessagePassingProtocol { } } - dispose(): void { + disconnect(): void { this.sender.send('vscode:disconnect', null); } } diff --git a/src/vs/base/parts/ipc/common/ipc.mp.ts b/src/vs/base/parts/ipc/common/ipc.mp.ts new file mode 100644 index 00000000000..8e59b5db9bf --- /dev/null +++ b/src/vs/base/parts/ipc/common/ipc.mp.ts @@ -0,0 +1,89 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { Event } from 'vs/base/common/event'; +import { IMessagePassingProtocol, IPCClient } from 'vs/base/parts/ipc/common/ipc'; +import { IDisposable } from 'vs/base/common/lifecycle'; +import { VSBuffer } from 'vs/base/common/buffer'; + +/** + * Declare minimal `MessageEvent` and `MessagePort` interfaces here + * so that this utility can be used both from `browser` and + * `electron-main` namespace where message ports are available. + */ + +export interface MessageEvent { + + /** + * For our use we only consider `Uint8Array` and `disconnect` + * a valid data transfer via message ports. Our protocol + * implementation is buffer based and we only need the explicit + * `disconnect` because message ports currently have no way of + * indicating when their connection is closed. + */ + data: Uint8Array | 'disconnect'; +} + +export interface MessagePort { + + addEventListener(type: 'message', listener: (this: MessagePort, e: MessageEvent) => unknown): void; + removeEventListener(type: 'message', listener: (this: MessagePort, e: MessageEvent) => unknown): void; + + postMessage(message: Uint8Array | 'disconnect'): void; + + start(): void; + close(): void; +} + +/** + * The MessagePort `Protocol` leverages MessagePort style IPC communication + * for the implementation of the `IMessagePassingProtocol`. That style of API + * is a simple `onmessage` / `postMessage` pattern. + */ +export class Protocol implements IMessagePassingProtocol { + + private readonly onRawData = Event.fromDOMEventEmitter(this.port, 'message', (e: MessageEvent) => e.data === 'disconnect' ? e.data : VSBuffer.wrap(e.data)); + + readonly onMessage = Event.filter(this.onRawData, data => data !== 'disconnect') as Event; + readonly onDisconnect = Event.signal(Event.filter(this.onRawData, data => data === 'disconnect')); + + constructor(private port: MessagePort) { + + // we must call start() to ensure messages are flowing + port.start(); + + // when the other end disconnects, ensure that we close + // our end as well to stay in sync + Event.once(this.onDisconnect)(() => port.close()); + } + + send(message: VSBuffer): void { + this.port.postMessage(message.buffer); + } + + disconnect(): void { + this.port.postMessage('disconnect'); + this.port.close(); + } +} + +/** + * An implementation of a `IPCClient` on top of MessagePort style IPC communication. + */ +export class Client extends IPCClient implements IDisposable { + + private protocol: Protocol; + + constructor(port: MessagePort, clientId: string) { + const protocol = new Protocol(port); + super(protocol, clientId); + + this.protocol = protocol; + } + + dispose(): void { + this.protocol.disconnect(); + } +} diff --git a/src/vs/base/parts/ipc/electron-main/ipc.mp.ts b/src/vs/base/parts/ipc/electron-main/ipc.mp.ts new file mode 100644 index 00000000000..34e159cecd1 --- /dev/null +++ b/src/vs/base/parts/ipc/electron-main/ipc.mp.ts @@ -0,0 +1,52 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { BrowserWindow, ipcMain, IpcMainEvent, MessagePortMain } from 'electron'; +import { Event } from 'vs/base/common/event'; +import { IDisposable } from 'vs/base/common/lifecycle'; +import { generateUuid } from 'vs/base/common/uuid'; +import { Client as MessagePortClient } from 'vs/base/parts/ipc/common/ipc.mp'; + +/** + * An implementation of a `IPCClient` on top of Electron `MessagePortMain`. + */ +export class Client extends MessagePortClient implements IDisposable { + + /** + * @param clientId a way to uniquely identify this client among + * other clients. this is important for routing because every + * client can also be a server + */ + constructor(port: MessagePortMain, clientId: string) { + super({ + addEventListener: (type, listener) => port.addListener(type, listener), + removeEventListener: (type, listener) => port.removeListener(type, listener), + postMessage: message => port.postMessage(message), + start: () => port.start(), + close: () => port.close() + }, clientId); + } +} + +/** + * This method opens a message channel connection + * in the target window. The target window needs + * to use the `Server` from `electron-sandbox/ipc.mp`. + */ +export async function connect(window: BrowserWindow): Promise { + + // Ask to create message channel inside the window + // and send over a UUID to correlate the response + const nonce = generateUuid(); + window.webContents.send('vscode:createMessageChannel', nonce); + + // Wait until the window has returned the `MessagePort` + // We need to filter by the `nonce` to ensure we listen + // to the right response. + const onMessageChannelResult = Event.fromNodeEventEmitter<{ nonce: string, port: MessagePortMain }>(ipcMain, 'vscode:createMessageChannelResult', (e: IpcMainEvent, nonce: string) => ({ nonce, port: e.ports[0] })); + const { port } = await Event.toPromise(Event.once(Event.filter(onMessageChannelResult, e => e.nonce === nonce))); + + return port; +} diff --git a/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts b/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts index e83b9c02b2b..f2eaa813112 100644 --- a/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts +++ b/src/vs/base/parts/ipc/electron-sandbox/ipc.electron.ts @@ -33,6 +33,6 @@ export class Client extends IPCClient implements IDisposable { } dispose(): void { - this.protocol.dispose(); + this.protocol.disconnect(); } } diff --git a/src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts b/src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts new file mode 100644 index 00000000000..7df6de38d4c --- /dev/null +++ b/src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts @@ -0,0 +1,45 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; +import { Event } from 'vs/base/common/event'; +import { ClientConnectionEvent, IPCServer } from 'vs/base/parts/ipc/common/ipc'; +import { Protocol as MessagePortProtocol } from 'vs/base/parts/ipc/common/ipc.mp'; + +/** + * An implementation of a `IPCServer` on top of MessagePort style IPC communication. + * The clients register themselves via Electron IPC transfer. + */ +export class Server extends IPCServer { + + private static getOnDidClientConnect(): Event { + + // Clients connect via `vscode:createMessageChannel` to get a + // `MessagePort` that is ready to be used. For every connection + // we create a pair of message ports and send it back. + // + // The `nonce` is included so that the main side has a chance to + // correlate the response back to the sender. + const onCreateMessageChannel = Event.fromNodeEventEmitter(ipcRenderer, 'vscode:createMessageChannel', (_, nonce: string) => nonce); + + return Event.map(onCreateMessageChannel, nonce => { + + // Create a new pair of ports and protocol for this connection + const { port1: incomingPort, port2: outgoingPort } = new MessageChannel(); + const protocol = new MessagePortProtocol(incomingPort); + + const result: ClientConnectionEvent = { protocol, onDidClientDisconnect: protocol.onDisconnect }; + + // Send one port back to the requestor + ipcRenderer.postMessage('vscode:createMessageChannelResult', nonce, [outgoingPort]); + + return result; + }); + } + + constructor() { + super(Server.getOnDidClientConnect()); + } +} diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 663b67bfab4..702c64434b5 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -6,9 +6,8 @@ import product from 'vs/platform/product/common/product'; import * as fs from 'fs'; import { gracefulify } from 'graceful-fs'; -import { isWindows } from 'vs/base/common/platform'; -import { IChannel, IServerChannel, StaticRouter, createChannelSender, createChannelReceiver } from 'vs/base/parts/ipc/common/ipc'; -import { serve as nodeIPCServe, Server as NodeIPCServer, connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; +import { Server as MessagePortServer } from 'vs/base/parts/ipc/electron-sandbox/ipc.mp'; +import { StaticRouter, createChannelSender, createChannelReceiver } from 'vs/base/parts/ipc/common/ipc'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { InstantiationService } from 'vs/platform/instantiation/common/instantiationService'; @@ -40,7 +39,7 @@ import { NodeCachedDataCleaner } from 'vs/code/electron-browser/sharedProcess/co import { LanguagePackCachedDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/languagePackCachedDataCleaner'; import { StorageDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/storageDataCleaner'; import { LogsDataCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/logsDataCleaner'; -import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; +import { IMainProcessService, MessagePortMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { SpdLogService } from 'vs/platform/log/node/spdlogService'; import { DiagnosticsService, IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsService'; import { FileService } from 'vs/platform/files/common/fileService'; @@ -79,34 +78,16 @@ import { DeprecatedExtensionsCleaner } from 'vs/code/electron-browser/sharedProc import { onUnexpectedError, setUnexpectedErrorHandler } from 'vs/base/common/errors'; import { toErrorMessage } from 'vs/base/common/errorMessage'; -class MainProcessService implements IMainProcessService { - - declare readonly _serviceBrand: undefined; - - constructor( - private server: NodeIPCServer, - private mainRouter: StaticRouter - ) { } - - getChannel(channelName: string): IChannel { - return this.server.getChannel(channelName, this.mainRouter); - } - - registerChannel(channelName: string, channel: IServerChannel): void { - this.server.registerChannel(channelName, channel); - } -} - class SharedProcessMain extends Disposable { - constructor(private server: NodeIPCServer, private configuration: ISharedProcessConfiguration) { + private server = this._register(new MessagePortServer()); + + constructor(private configuration: ISharedProcessConfiguration) { super(); // Enable gracefulFs gracefulify(fs); - this._register(this.server); - this.registerListeners(); } @@ -160,7 +141,7 @@ class SharedProcessMain extends Disposable { // Log const mainRouter = new StaticRouter(ctx => ctx === 'main'); - const loggerClient = new LoggerChannelClient(this.server.getChannel('logger', mainRouter)); + const loggerClient = new LoggerChannelClient(this.server.getChannel('logger', mainRouter)); // we only use this for log levels const multiplexLogger = this._register(new MultiplexLogService([ this._register(new ConsoleLogService(this.configuration.logLevel)), this._register(new SpdLogService('sharedprocess', environmentService.logsPath, this.configuration.logLevel)) @@ -170,7 +151,7 @@ class SharedProcessMain extends Disposable { services.set(ILogService, logService); // Main Process - const mainProcessService = new MainProcessService(this.server, mainRouter); + const mainProcessService = new MessagePortMainProcessService(this.server, mainRouter); services.set(IMainProcessService, mainProcessService); // Files @@ -345,48 +326,14 @@ class SharedProcessMain extends Disposable { } } -function setupNodeIPC(hook: string): Promise { - function setup(retry: boolean): Promise { - return nodeIPCServe(hook).then(null, err => { - if (!retry || isWindows || err.code !== 'EADDRINUSE') { - return Promise.reject(err); - } - - // should retry, not windows and eaddrinuse - - return nodeIPCConnect(hook, '').then( - client => { - // we could connect to a running instance. this is not good, abort - client.dispose(); - return Promise.reject(new Error('There is an instance already running.')); - }, - err => { - // it happens on Linux and OS X that the pipe is left behind - // let's delete it, since we can't connect to it - // and the retry the whole thing - try { - fs.unlinkSync(hook); - } catch (e) { - return Promise.reject(new Error('Error deleting the shared ipc hook.')); - } - - return setup(false); - } - ); - }); - } - - return setup(true); -} - export async function main(configuration: ISharedProcessConfiguration): Promise { - // await IPC connection and signal this back to electron-main - const server = await setupNodeIPC(configuration.sharedIPCHandle); + // create shared process and signal back to main that we are + // ready to accept message ports as client connections + const sharedProcess = new SharedProcessMain(configuration); ipcRenderer.send('vscode:shared-process->electron-main=ipc-ready'); // await initialization and signal this back to electron-main - const sharedProcess = new SharedProcessMain(server, configuration); await sharedProcess.open(); ipcRenderer.send('vscode:shared-process->electron-main=init-done'); } diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 07b56c050aa..254c26ac98d 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -13,8 +13,8 @@ import { IUpdateService } from 'vs/platform/update/common/update'; import { UpdateChannel } from 'vs/platform/update/electron-main/updateIpc'; import { getDelayedChannel, StaticRouter, createChannelReceiver, createChannelSender } from 'vs/base/parts/ipc/common/ipc'; import { Server as ElectronIPCServer } from 'vs/base/parts/ipc/electron-main/ipc.electron'; -import { Client as NodeIPCClient } from 'vs/base/parts/ipc/common/ipc.net'; -import { Server as NodeIPCServer, connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; +import { Server as NodeIPCServer } from 'vs/base/parts/ipc/node/ipc.net'; +import { Client as MessagePortClient } from 'vs/base/parts/ipc/electron-main/ipc.mp'; import { SharedProcess } from 'vs/code/electron-main/sharedProcess'; import { LaunchMainService, ILaunchMainService } from 'vs/platform/launch/electron-main/launchMainService'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; @@ -426,16 +426,20 @@ export class CodeApplication extends Disposable { // Spawn shared process after the first window has opened and 3s have passed const sharedProcess = this.instantiationService.createInstance(SharedProcess, machineId, this.userEnv); - const sharedProcessClient = sharedProcess.whenIpcReady().then(() => { - this.logService.trace('Shared process: IPC ready'); + const sharedProcessClient = (async () => { + this.logService.trace('Main->SharedProcess#connect'); - return nodeIPCConnect(this.environmentService.sharedIPCHandle, 'main'); - }); - const sharedProcessReady = sharedProcess.whenReady().then(() => { - this.logService.trace('Shared process: init ready'); + const port = await sharedProcess.connect(); + + this.logService.trace('Main->SharedProcess#connect: connection established'); + + return new MessagePortClient(port, 'main'); + })(); + const sharedProcessReady = (async () => { + await sharedProcess.whenReady(); return sharedProcessClient; - }); + })(); this.lifecycleMainService.when(LifecycleMainPhase.AfterWindowOpen).then(() => { this._register(new RunOnceScheduler(async () => { sharedProcess.spawn(await resolveShellEnv(this.logService, this.environmentService.args, process.env)); @@ -482,7 +486,7 @@ export class CodeApplication extends Disposable { return machineId; } - private async createServices(machineId: string, sharedProcess: SharedProcess, sharedProcessReady: Promise>): Promise { + private async createServices(machineId: string, sharedProcess: SharedProcess, sharedProcessReady: Promise): Promise { const services = new ServiceCollection(); switch (process.platform) { @@ -584,7 +588,7 @@ export class CodeApplication extends Disposable { }); } - private openFirstWindow(accessor: ServicesAccessor, electronIpcServer: ElectronIPCServer, sharedProcessClient: Promise>, fileProtocolHandler: FileProtocolHandler): ICodeWindow[] { + private openFirstWindow(accessor: ServicesAccessor, electronIpcServer: ElectronIPCServer, sharedProcessClient: Promise, fileProtocolHandler: FileProtocolHandler): ICodeWindow[] { // Register more Main IPC services const launchMainService = accessor.get(ILaunchMainService); diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index d196ef0e872..fbf5263a3f0 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -3,9 +3,8 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { memoize } from 'vs/base/common/decorators'; +import { BrowserWindow, ipcMain, Event, MessagePortMain } from 'electron'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; -import { BrowserWindow, ipcMain, Event } from 'electron'; import { ISharedProcess } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; @@ -15,14 +14,13 @@ import { FileAccess } from 'vs/base/common/network'; import { browserCodeLoadingCacheStrategy } from 'vs/base/common/platform'; import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; import { Disposable } from 'vs/base/common/lifecycle'; +import { connect as connectMessagePort } from 'vs/base/parts/ipc/electron-main/ipc.mp'; +import { assertIsDefined } from 'vs/base/common/types'; export class SharedProcess extends Disposable implements ISharedProcess { private readonly whenSpawnedBarrier = new Barrier(); - // overall ready promise when shared process signals initialization is done - private readonly _whenReady = new Promise(resolve => ipcMain.once('vscode:shared-process->electron-main=init-done', () => resolve())); - private window: BrowserWindow | undefined = undefined; private windowCloseListener: ((event: Event) => void) | undefined = undefined; @@ -40,7 +38,16 @@ export class SharedProcess extends Disposable implements ISharedProcess { } private registerListeners(): void { + + // Lifecycle this._register(this.lifecycleMainService.onWillShutdown(() => this.onWillShutdown())); + + // Shared process connections + ipcMain.on('vscode:createSharedProcessMessageChannel', async (e, nonce: string) => { + const port = await this.connect(); + + e.sender.postMessage('vscode:createSharedProcessMessageChannelResult', nonce, [port]); + }); } private onWillShutdown(): void { @@ -50,7 +57,7 @@ export class SharedProcess extends Disposable implements ISharedProcess { } // Signal exit to shared process when shutting down - window.webContents.send('vscode:electron-main->shared-process=exit'); // TODO verify call + window.webContents.send('vscode:electron-main->shared-process=exit'); // Shut the shared process down when we are quitting // @@ -75,17 +82,45 @@ export class SharedProcess extends Disposable implements ISharedProcess { }, 0); } - @memoize - private get _whenIpcReady(): Promise { + private _whenReady: Promise | undefined = undefined; + whenReady(): Promise { + if (!this._whenReady) { + // Overall signal that the shared process window was loaded and + // all services within have been created. + this._whenReady = new Promise(resolve => ipcMain.once('vscode:shared-process->electron-main=init-done', () => { + this.logService.trace('SharedProcess: Overall ready'); - // Create window for shared process - this.createWindow(); + resolve(); + })); + } - // Listeners - this.registerWindowListeners(); + return this._whenReady; + } - // complete IPC-ready promise when shared process signals this to us - return new Promise(resolve => ipcMain.once('vscode:shared-process->electron-main=ipc-ready', () => resolve(undefined))); + private _whenIpcReady: Promise | undefined = undefined; + private get whenIpcReady() { + if (!this._whenIpcReady) { + this._whenIpcReady = (async () => { + + // Always wait for `spawn()` + await this.whenSpawnedBarrier.wait(); + + // Create window for shared process + this.createWindow(); + + // Listeners + this.registerWindowListeners(); + + // Wait for window indicating that IPC connections are accepted + await new Promise(resolve => ipcMain.once('vscode:shared-process->electron-main=ipc-ready', () => { + this.logService.trace('SharedProcess: IPC ready'); + + resolve(); + })); + })(); + } + + return this._whenIpcReady; } private createWindow(): void { @@ -151,7 +186,7 @@ export class SharedProcess extends Disposable implements ISharedProcess { // Crashes & Unrsponsive & Failed to load this.window.webContents.on('render-process-gone', (event, details) => this.logService.error(`[VS Code]: sharedProcess crashed (detail: ${details?.reason})`)); this.window.on('unresponsive', () => this.logService.error('[VS Code]: detected unresponsive sharedProcess window')); - this.window.webContents.on('did-fail-load', (event: Event, errorCode: number, errorDescription: string) => this.logService.warn('[VS Code]: fail to load sharedProcess window, ', errorDescription)); + this.window.webContents.on('did-fail-load', (event, errorCode, errorDescription) => this.logService.warn('[VS Code]: fail to load sharedProcess window, ', errorDescription)); } spawn(userEnv: NodeJS.ProcessEnv): void { @@ -161,20 +196,14 @@ export class SharedProcess extends Disposable implements ISharedProcess { this.whenSpawnedBarrier.open(); } - async whenReady(): Promise { + async connect(): Promise { - // Always wait for `spawn()` - await this.whenSpawnedBarrier.wait(); + // Wait for shared process being ready to accept connection + await this.whenIpcReady; - await this._whenReady; - } - - async whenIpcReady(): Promise { - - // Always wait for `spawn()` - await this.whenSpawnedBarrier.wait(); - - await this._whenIpcReady; + // Connect and return message port + const window = assertIsDefined(this.window); + return connectMessagePort(window); } toggle(): void { diff --git a/src/vs/code/electron-main/window.ts b/src/vs/code/electron-main/window.ts index c4de35da47b..357229c46a5 100644 --- a/src/vs/code/electron-main/window.ts +++ b/src/vs/code/electron-main/window.ts @@ -415,7 +415,7 @@ export class CodeWindow extends Disposable implements ICodeWindow { // Crashes & Unrsponsive & Failed to load this._win.webContents.on('render-process-gone', (event, details) => this.onWindowError(WindowError.CRASHED, details)); this._win.on('unresponsive', () => this.onWindowError(WindowError.UNRESPONSIVE)); - this._win.webContents.on('did-fail-load', (event: Event, errorCode: number, errorDescription: string) => this.logService.warn('[VS Code]: fail to load workbench window, ', errorDescription)); + this._win.webContents.on('did-fail-load', (event, errorCode, errorDescription) => this.logService.warn('[VS Code]: fail to load workbench window, ', errorDescription)); // Window close this._win.on('closed', () => { diff --git a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts index 5725a9f7780..fafe76a3e1e 100644 --- a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts +++ b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts @@ -22,7 +22,7 @@ import BaseHtml from 'vs/code/electron-sandbox/issue/issueReporterPage'; import { localize } from 'vs/nls'; import { isRemoteDiagnosticError, SystemInfo } from 'vs/platform/diagnostics/common/diagnostics'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; -import { IMainProcessService, MainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; +import { IMainProcessService, ElectronIPCMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { IssueReporterData, IssueReporterExtensionData, IssueReporterFeatures, IssueReporterStyles, IssueType } from 'vs/platform/issue/common/issue'; import { IWindowConfiguration } from 'vs/platform/windows/common/windows'; import { Codicon } from 'vs/base/common/codicons'; @@ -266,7 +266,7 @@ export class IssueReporter extends Disposable { private initServices(configuration: IssueReporterConfiguration): void { const serviceCollection = new ServiceCollection(); - const mainProcessService = new MainProcessService(configuration.windowId); + const mainProcessService = new ElectronIPCMainProcessService(configuration.windowId); serviceCollection.set(IMainProcessService, mainProcessService); this.nativeHostService = new NativeHostService(configuration.windowId, mainProcessService) as INativeHostService; diff --git a/src/vs/code/electron-sandbox/processExplorer/processExplorerMain.ts b/src/vs/code/electron-sandbox/processExplorer/processExplorerMain.ts index eb8c234cb5a..e4e7be122e7 100644 --- a/src/vs/code/electron-sandbox/processExplorer/processExplorerMain.ts +++ b/src/vs/code/electron-sandbox/processExplorer/processExplorerMain.ts @@ -17,7 +17,7 @@ import { ProcessItem } from 'vs/base/common/processes'; import * as dom from 'vs/base/browser/dom'; import { DisposableStore } from 'vs/base/common/lifecycle'; import { isRemoteDiagnosticError, IRemoteDiagnosticError } from 'vs/platform/diagnostics/common/diagnostics'; -import { MainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; +import { ElectronIPCMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { ByteSize } from 'vs/platform/files/common/files'; import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list'; import { IDataSource, ITreeNode, ITreeRenderer } from 'vs/base/browser/ui/tree/tree'; @@ -233,7 +233,7 @@ class ProcessExplorer { private tree: DataTree | undefined; constructor(windowId: number, private data: ProcessExplorerData) { - const mainProcessService = new MainProcessService(windowId); + const mainProcessService = new ElectronIPCMainProcessService(windowId); this.nativeHostService = new NativeHostService(windowId, mainProcessService) as INativeHostService; this.applyStyles(data.styles); diff --git a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts index 0fc2e8cad56..ef17fe1cfe6 100644 --- a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts +++ b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts @@ -3,10 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { IChannel, IServerChannel } from 'vs/base/parts/ipc/common/ipc'; +import { IChannel, IServerChannel, StaticRouter } from 'vs/base/parts/ipc/common/ipc'; import { Client as IPCElectronClient } from 'vs/base/parts/ipc/electron-sandbox/ipc.electron'; import { Disposable } from 'vs/base/common/lifecycle'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; +import { Server } from 'vs/base/parts/ipc/electron-sandbox/ipc.mp'; export const IMainProcessService = createDecorator('mainProcessService'); @@ -19,7 +20,10 @@ export interface IMainProcessService { registerChannel(channelName: string, channel: IServerChannel): void; } -export class MainProcessService extends Disposable implements IMainProcessService { +/** + * An implementation of `IMainProcessService` that leverages Electron's IPC. + */ +export class ElectronIPCMainProcessService extends Disposable implements IMainProcessService { declare readonly _serviceBrand: undefined; @@ -41,3 +45,24 @@ export class MainProcessService extends Disposable implements IMainProcessServic this.mainProcessConnection.registerChannel(channelName, channel); } } + +/** + * An implementation of `IMainProcessService` that leverages MessagePorts. + */ +export class MessagePortMainProcessService implements IMainProcessService { + + declare readonly _serviceBrand: undefined; + + constructor( + private server: Server, + private router: StaticRouter + ) { } + + getChannel(channelName: string): IChannel { + return this.server.getChannel(channelName, this.router); + } + + registerChannel(channelName: string, channel: IServerChannel): void { + this.server.registerChannel(channelName, channel); + } +} diff --git a/src/vs/workbench/electron-browser/desktop.main.ts b/src/vs/workbench/electron-browser/desktop.main.ts index 23ee89c3631..56fd77afd1f 100644 --- a/src/vs/workbench/electron-browser/desktop.main.ts +++ b/src/vs/workbench/electron-browser/desktop.main.ts @@ -32,7 +32,7 @@ import { IWorkbenchConfigurationService } from 'vs/workbench/services/configurat import { IStorageService } from 'vs/platform/storage/common/storage'; import { Disposable } from 'vs/base/common/lifecycle'; import { registerWindowDriver } from 'vs/platform/driver/electron-browser/driver'; -import { IMainProcessService, MainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; +import { IMainProcessService, ElectronIPCMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { RemoteAuthorityResolverService } from 'vs/platform/remote/electron-sandbox/remoteAuthorityResolverService'; import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; @@ -181,7 +181,7 @@ class DesktopMain extends Disposable { // Main Process - const mainProcessService = this._register(new MainProcessService(this.configuration.windowId)); + const mainProcessService = this._register(new ElectronIPCMainProcessService(this.configuration.windowId)); serviceCollection.set(IMainProcessService, mainProcessService); // Environment diff --git a/src/vs/workbench/electron-sandbox/desktop.main.ts b/src/vs/workbench/electron-sandbox/desktop.main.ts index 4e309ea232f..bd84d333419 100644 --- a/src/vs/workbench/electron-sandbox/desktop.main.ts +++ b/src/vs/workbench/electron-sandbox/desktop.main.ts @@ -19,7 +19,7 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace import { IWorkbenchConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { Disposable } from 'vs/base/common/lifecycle'; -import { IMainProcessService, MainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; +import { IMainProcessService, ElectronIPCMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { FileService } from 'vs/platform/files/common/fileService'; @@ -153,7 +153,7 @@ class DesktopMain extends Disposable { // Main Process - const mainProcessService = this._register(new MainProcessService(this.configuration.windowId)); + const mainProcessService = this._register(new ElectronIPCMainProcessService(this.configuration.windowId)); serviceCollection.set(IMainProcessService, mainProcessService); // Environment diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts index 95be518ea2d..23a398a164f 100644 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts @@ -3,38 +3,66 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Client as NodeIPCClient } from 'vs/base/parts/ipc/common/ipc.net'; -import { connect as nodeIPCConnect } from 'vs/base/parts/ipc/node/ipc.net'; +import { Event } from 'vs/base/common/event'; +import { IpcRendererEvent } from 'vs/base/parts/sandbox/electron-sandbox/electronTypes'; +import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; +import { Client as MessagePortClient } from 'vs/base/parts/ipc/common/ipc.mp'; import { IChannel, IServerChannel, getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; +import { generateUuid } from 'vs/base/common/uuid'; +import { ILogService } from 'vs/platform/log/common/log'; +import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; +import { Disposable } from 'vs/base/common/lifecycle'; -export class SharedProcessService implements ISharedProcessService { +export class SharedProcessService extends Disposable implements ISharedProcessService { declare readonly _serviceBrand: undefined; - private withSharedProcessConnection: Promise>; - private sharedProcessMainChannel: IChannel; + private readonly sharedProcessMainChannel = this.mainProcessService.getChannel('sharedProcess'); + private readonly withSharedProcessConnection: Promise; constructor( - @IMainProcessService mainProcessService: IMainProcessService, - @INativeHostService nativeHostService: INativeHostService, - @INativeWorkbenchEnvironmentService environmentService: INativeWorkbenchEnvironmentService + @IMainProcessService private readonly mainProcessService: IMainProcessService, + @INativeHostService private readonly nativeHostService: INativeHostService, + @ILogService private readonly logService: ILogService, + @ILifecycleService private readonly lifecycleService: ILifecycleService ) { - this.sharedProcessMainChannel = mainProcessService.getChannel('sharedProcess'); + super(); - this.withSharedProcessConnection = (async () => { - await this.whenReady(); + this.withSharedProcessConnection = this.connect(); - return nodeIPCConnect(environmentService.sharedIPCHandle, `window:${nativeHostService.windowId}`); - })(); + this.registerListeners(); } - private whenReady(): Promise { - return this.sharedProcessMainChannel.call('whenReady'); + private registerListeners(): void { + + // Lifecycle + this.lifecycleService.onWillShutdown(() => this.dispose()); + } + + private async connect(): Promise { + this.logService.trace('Workbench->SharedProcess#connect'); + + // await the shared process to be ready + await this.sharedProcessMainChannel.call('whenReady'); + + // Ask to create message channel inside the window + // and send over a UUID to correlate the response + const nonce = generateUuid(); + ipcRenderer.send('vscode:createSharedProcessMessageChannel', nonce); + + // Wait until the main side has returned the `MessagePort` + // We need to filter by the `nonce` to ensure we listen + // to the right response. + const onMessageChannelResult = Event.fromNodeEventEmitter<{ nonce: string, port: MessagePort }>(ipcRenderer, 'vscode:createSharedProcessMessageChannelResult', (e: IpcRendererEvent, nonce: string) => ({ nonce, port: e.ports[0] })); + const { port } = await Event.toPromise(Event.once(Event.filter(onMessageChannelResult, e => e.nonce === nonce))); + + this.logService.trace('Workbench->SharedProcess#connect: connection established'); + + return this._register(new MessagePortClient(port, `window:${this.nativeHostService.windowId}`)); } getChannel(channelName: string): IChannel { From 634ebecb8b705ffecd8cdaa3ea9c52c2f5256156 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 17:51:11 +0100 Subject: [PATCH 041/171] Refactor code to use `await` --- .../remote/common/remoteAgentConnection.ts | 139 ++++++++++-------- 1 file changed, 78 insertions(+), 61 deletions(-) diff --git a/src/vs/platform/remote/common/remoteAgentConnection.ts b/src/vs/platform/remote/common/remoteAgentConnection.ts index 13c87a6f4ac..fd7aee02eb6 100644 --- a/src/vs/platform/remote/common/remoteAgentConnection.ts +++ b/src/vs/platform/remote/common/remoteAgentConnection.ts @@ -8,7 +8,7 @@ import { generateUuid } from 'vs/base/common/uuid'; import { RemoteAgentConnectionContext } from 'vs/platform/remote/common/remoteAgentEnvironment'; import { Disposable } from 'vs/base/common/lifecycle'; import { VSBuffer } from 'vs/base/common/buffer'; -import { Emitter } from 'vs/base/common/event'; +import { Emitter, Event } from 'vs/base/common/event'; import { RemoteAuthorityResolverError } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { isPromiseCanceledError, onUnexpectedError } from 'vs/base/common/errors'; import { ISignService } from 'vs/platform/sign/common/sign'; @@ -86,6 +86,38 @@ export interface ISocketFactory { connect(host: string, port: number, query: string, callback: IConnectCallback): void; } +async function readOneControlMessage(protocol: PersistentProtocol): Promise { + const raw = await Event.toPromise(protocol.onControlMessage); + const msg = JSON.parse(raw.toString()); + const error = getErrorFromMessage(msg); + if (error) { + throw error; + } + return msg; +} + +function waitWithTimeout(promise: Promise, timeout: number): Promise { + return new Promise((resolve, reject) => { + const timeoutToken = setTimeout(() => { + const error: any = new Error('Timeout'); + error.code = 'ETIMEDOUT'; + error.syscall = 'connect'; + reject(error); + }, timeout); + + promise.then( + (result) => { + clearTimeout(timeoutToken); + resolve(result); + }, + (error) => { + clearTimeout(timeoutToken); + reject(error); + } + ); + }); +} + async function connectToRemoteExtensionHostAgent(options: ISimpleConnectionOptions, connectionType: ConnectionType, args: any | undefined): Promise<{ protocol: PersistentProtocol; ownsProtocol: boolean; }> { const logPrefix = connectLogPrefix(options, connectionType); const { protocol, ownsProtocol } = await new Promise<{ protocol: PersistentProtocol; ownsProtocol: boolean; }>((c, e) => { @@ -113,69 +145,54 @@ async function connectToRemoteExtensionHostAgent(options: ISimpleConnectionOptio ); }); - return new Promise<{ protocol: PersistentProtocol; ownsProtocol: boolean; }>((c, e) => { + options.logService.trace(`${logPrefix} 3/6. sending AuthRequest control message.`); + const authRequest: AuthRequest = { + type: 'auth', + auth: options.connectionToken || '00000000000000000000' + }; + protocol.sendControl(VSBuffer.fromString(JSON.stringify(authRequest))); - const errorTimeoutToken = setTimeout(() => { - const error: any = new Error('handshake timeout'); - error.code = 'ETIMEDOUT'; - error.syscall = 'connect'; + try { + const msg = await waitWithTimeout(readOneControlMessage(protocol), 10000); + + if (msg.type !== 'sign' || typeof msg.data !== 'string') { + const error: any = new Error('Unexpected handshake message'); + error.code = 'VSCODE_CONNECTION_ERROR'; + throw error; + } + + options.logService.trace(`${logPrefix} 4/6. received SignRequest control message.`); + + const signed = await options.signService.sign(msg.data); + const connTypeRequest: ConnectionTypeRequest = { + type: 'connectionType', + commit: options.commit, + signedData: signed, + desiredConnectionType: connectionType + }; + if (args) { + connTypeRequest.args = args; + } + + options.logService.trace(`${logPrefix} 5/6. sending ConnectionTypeRequest control message.`); + protocol.sendControl(VSBuffer.fromString(JSON.stringify(connTypeRequest))); + + return { protocol, ownsProtocol }; + + } catch (error) { + if (error && error.code === 'ETIMEDOUT') { options.logService.error(`${logPrefix} the handshake took longer than 10 seconds. Error:`); options.logService.error(error); - if (ownsProtocol) { - safeDisposeProtocolAndSocket(protocol); - } - e(error); - }, 10000); - - const messageRegistration = protocol.onControlMessage(async raw => { - const msg = JSON.parse(raw.toString()); - // Stop listening for further events - messageRegistration.dispose(); - - const error = getErrorFromMessage(msg); - if (error) { - options.logService.error(`${logPrefix} received error control message when negotiating connection. Error:`); - options.logService.error(error); - if (ownsProtocol) { - safeDisposeProtocolAndSocket(protocol); - } - return e(error); - } - - if (msg.type === 'sign') { - options.logService.trace(`${logPrefix} 4/6. received SignRequest control message.`); - const signed = await options.signService.sign(msg.data); - const connTypeRequest: ConnectionTypeRequest = { - type: 'connectionType', - commit: options.commit, - signedData: signed, - desiredConnectionType: connectionType - }; - if (args) { - connTypeRequest.args = args; - } - options.logService.trace(`${logPrefix} 5/6. sending ConnectionTypeRequest control message.`); - protocol.sendControl(VSBuffer.fromString(JSON.stringify(connTypeRequest))); - clearTimeout(errorTimeoutToken); - c({ protocol, ownsProtocol }); - } else { - const error = new Error('handshake error'); - options.logService.error(`${logPrefix} received unexpected control message. Error:`); - options.logService.error(error); - if (ownsProtocol) { - safeDisposeProtocolAndSocket(protocol); - } - e(error); - } - }); - - options.logService.trace(`${logPrefix} 3/6. sending AuthRequest control message.`); - const authRequest: AuthRequest = { - type: 'auth', - auth: options.connectionToken || '00000000000000000000' - }; - protocol.sendControl(VSBuffer.fromString(JSON.stringify(authRequest))); - }); + } + if (error && error.code === 'VSCODE_CONNECTION_ERROR') { + options.logService.error(`${logPrefix} received error control message when negotiating connection. Error:`); + options.logService.error(error); + } + if (ownsProtocol) { + safeDisposeProtocolAndSocket(protocol); + } + throw error; + } } interface IManagementConnectionResult { From 526f826ac14cb91c85ccdd13f3b62042dd0201fc Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 14 Jan 2021 18:18:26 +0100 Subject: [PATCH 042/171] fix #114192 --- .../browser/parts/editor/titleControl.ts | 32 +++---------------- 1 file changed, 4 insertions(+), 28 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/titleControl.ts b/src/vs/workbench/browser/parts/editor/titleControl.ts index d7f535513a6..e1847682a9b 100644 --- a/src/vs/workbench/browser/parts/editor/titleControl.ts +++ b/src/vs/workbench/browser/parts/editor/titleControl.ts @@ -10,13 +10,12 @@ import { StandardMouseEvent } from 'vs/base/browser/mouseEvent'; import { ActionsOrientation, prepareActions } from 'vs/base/browser/ui/actionbar/actionbar'; import { ToolBar } from 'vs/base/browser/ui/toolbar/toolbar'; import { IAction, WorkbenchActionExecutedEvent, WorkbenchActionExecutedClassification, IActionViewItem } from 'vs/base/common/actions'; -import { equals } from 'vs/base/common/arrays'; import { ResolvedKeybinding } from 'vs/base/common/keyCodes'; import { dispose, DisposableStore } from 'vs/base/common/lifecycle'; import { isCodeEditor } from 'vs/editor/browser/editorBrowser'; import { localize } from 'vs/nls'; import { createAndFillInActionBarActions, createAndFillInContextMenuActions, MenuEntryActionViewItem, SubmenuEntryActionViewItem } from 'vs/platform/actions/browser/menuEntryActionViewItem'; -import { ExecuteCommandAction, IMenu, IMenuService, MenuId, MenuItemAction, SubmenuItemAction } from 'vs/platform/actions/common/actions'; +import { IMenu, IMenuService, MenuId, MenuItemAction, SubmenuItemAction } from 'vs/platform/actions/common/actions'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; @@ -67,9 +66,6 @@ export abstract class TitleControl extends Themable { protected breadcrumbsControl: BreadcrumbsControl | undefined = undefined; - private currentPrimaryEditorActionIds: string[] = []; - private currentSecondaryEditorActionIds: string[] = []; - private editorActionsToolbar: ToolBar | undefined; private resourceContext: ResourceContextKey; @@ -196,25 +192,10 @@ export abstract class TitleControl extends Themable { } protected updateEditorActionsToolbar(): void { - - // Update Editor Actions Toolbar const { primaryEditorActions, secondaryEditorActions } = this.prepareEditorActions(this.getEditorActions()); - // Only update if something actually has changed - const primaryEditorActionIds = primaryEditorActions.map(action => action.id); - const secondaryEditorActionIds = secondaryEditorActions.map(action => action.id); - if ( - !equals(primaryEditorActionIds, this.currentPrimaryEditorActionIds) || - !equals(secondaryEditorActionIds, this.currentSecondaryEditorActionIds) || - primaryEditorActions.some(action => action instanceof ExecuteCommandAction) || // execute command actions can have the same ID but different arguments - secondaryEditorActions.some(action => action instanceof ExecuteCommandAction) // see also https://github.com/microsoft/vscode/issues/16298 - ) { - const editorActionsToolbar = assertIsDefined(this.editorActionsToolbar); - editorActionsToolbar.setActions(primaryEditorActions, secondaryEditorActions); - - this.currentPrimaryEditorActionIds = primaryEditorActionIds; - this.currentSecondaryEditorActionIds = secondaryEditorActionIds; - } + const editorActionsToolbar = assertIsDefined(this.editorActionsToolbar); + editorActionsToolbar.setActions(primaryEditorActions, secondaryEditorActions); } protected prepareEditorActions(editorActions: IToolbarActions): { primaryEditorActions: IAction[]; secondaryEditorActions: IAction[]; } { @@ -265,12 +246,7 @@ export abstract class TitleControl extends Themable { } protected clearEditorActionsToolbar(): void { - if (this.editorActionsToolbar) { - this.editorActionsToolbar.setActions([], []); - } - - this.currentPrimaryEditorActionIds = []; - this.currentSecondaryEditorActionIds = []; + this.editorActionsToolbar?.setActions([], []); } protected enableGroupDragging(element: HTMLElement): void { From e44fb4ab927c2526bd06e36a003199ed53b96b50 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 14 Jan 2021 09:24:02 -0800 Subject: [PATCH 043/171] update distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index aec331d3b9c..a290512f7a5 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "b6aba18ee240389adb38e2ab87a8c7c3e7765702", + "distro": "064219681f2bf4eb8f7bc4f7ec6ba21fe9eab740", "author": { "name": "Microsoft Corporation" }, From d4f993de63e22697f3a19d69c3077cd2b79da577 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Thu, 14 Jan 2021 18:34:27 +0100 Subject: [PATCH 044/171] Saving an untitled file closes it (fix #114272) --- .../workbench/common/editor/textResourceEditorInput.ts | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/common/editor/textResourceEditorInput.ts b/src/vs/workbench/common/editor/textResourceEditorInput.ts index 539f93cc493..b738dca4c23 100644 --- a/src/vs/workbench/common/editor/textResourceEditorInput.ts +++ b/src/vs/workbench/common/editor/textResourceEditorInput.ts @@ -220,8 +220,13 @@ export abstract class AbstractTextResourceEditorInput extends EditorInput implem return undefined; // save cancelled } - // If the target is a different resource (from "Save As" operation), return with a new editor input - if (saveAs && !isEqual(target, this.preferredResource)) { + // If this save operation results in a new editor, either + // because it was saved to disk (e.g. from untitled) or + // through an explicit "Save As", make sure to replace it. + if ( + target.scheme !== this.resource.scheme || + (saveAs && !isEqual(target, this.preferredResource)) + ) { return this.editorService.createEditorInput({ resource: target }); } From 30f61c2449b3aecc28070ccc1b09b379008f29b8 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 14 Jan 2021 09:42:27 -0800 Subject: [PATCH 045/171] part of #114214 serverSpawn=true --- .../terminal/browser/remoteTerminalService.ts | 9 ++++++++- .../contrib/terminal/common/remoteTerminalChannel.ts | 12 ++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts b/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts index 872e9a36fbf..8cbe2db25b6 100644 --- a/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts +++ b/src/vs/workbench/contrib/terminal/browser/remoteTerminalService.ts @@ -253,7 +253,14 @@ export class RemoteTerminalProcess extends Disposable implements ITerminalChildP } public acknowledgeDataEvent(charCount: number): void { - // TODO: Support flow control for server spawned processes + // Support flow control for server spawned processes + if (this._inReplay) { + return; + } + + this._startBarrier.wait().then(_ => { + this._remoteTerminalChannel.sendCharCountToTerminalProcess(this._remoteTerminalId, charCount); + }); } public async getInitialCwd(): Promise { diff --git a/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts b/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts index af860fc269f..5e72f5ce249 100644 --- a/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts +++ b/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts @@ -153,6 +153,11 @@ export interface ITriggerTerminalDataReplayArguments { id: number; } +export interface ISendCharCountToTerminalProcessArguments { + id: number; + charCount: number; +} + export interface IRemoteTerminalProcessReadyEvent { type: 'ready'; pid: number; @@ -323,6 +328,13 @@ export class RemoteTerminalChannelClient { return this._channel.call('$sendInputToTerminalProcess', args); } + public sendCharCountToTerminalProcess(id: number, charCount: number): Promise { + const args: ISendCharCountToTerminalProcessArguments = { + id, charCount + }; + return this._channel.call('$sendCharCountToTerminalProcess', args); + } + public shutdownTerminalProcess(id: number, immediate: boolean): Promise { const args: IShutdownTerminalProcessArguments = { id, immediate From e1d8b926583921d73c8ac8ca18398214fcfed1eb Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 14 Jan 2021 09:46:54 -0800 Subject: [PATCH 046/171] update distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index a290512f7a5..f3bba992596 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "064219681f2bf4eb8f7bc4f7ec6ba21fe9eab740", + "distro": "6e1ccff8c02eb1f68593a87858a87887a236fc40", "author": { "name": "Microsoft Corporation" }, From 5b1e59c636cedc9a7ff800fe3fb05e667af0ba05 Mon Sep 17 00:00:00 2001 From: isidor Date: Thu, 14 Jan 2021 19:26:13 +0100 Subject: [PATCH 047/171] explorer: hide open editors for new users fixes #112480 --- src/vs/workbench/contrib/files/browser/explorerViewlet.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/contrib/files/browser/explorerViewlet.ts b/src/vs/workbench/contrib/files/browser/explorerViewlet.ts index 82b38b5c71b..26ab7959f26 100644 --- a/src/vs/workbench/contrib/files/browser/explorerViewlet.ts +++ b/src/vs/workbench/contrib/files/browser/explorerViewlet.ts @@ -118,6 +118,7 @@ export class ExplorerViewletViewsContribution extends Disposable implements IWor canToggleVisibility: true, canMoveView: true, collapsed: true, + hideByDefault: true, focusCommand: { id: 'workbench.files.action.focusOpenEditorsView', keybindings: { primary: KeyChord(KeyMod.CtrlCmd | KeyCode.KEY_K, KeyCode.KEY_E) } From 5d6cba5cbc22d5c16cb0850ac71cb50bc949134e Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Wed, 13 Jan 2021 21:40:49 -0800 Subject: [PATCH 048/171] Reworking external opener implementation to allow configured openers to be called directly without a canOpen check If the user has configured a specific external uri opener, we should always try to use that without first calling `canOpen` to filter down the list of openers. This change also adds `ExternalUriOpenerEnablement` which allows an opener to mark itself as the preferred opener for a given uri. If only a single preferred opener is returned, it will be used automatically for that uri (although user configuration can override this) --- extensions/simple-browser/src/extension.ts | 13 +- .../editor/browser/services/openerService.ts | 5 +- src/vs/editor/common/modes.ts | 10 ++ src/vs/platform/opener/common/opener.ts | 9 +- src/vs/vscode.proposed.d.ts | 21 ++- .../api/browser/mainThreadUriOpeners.ts | 36 +++-- .../workbench/api/common/extHost.api.impl.ts | 1 + .../workbench/api/common/extHost.protocol.ts | 4 +- src/vs/workbench/api/common/extHostTypes.ts | 6 + .../workbench/api/common/extHostUriOpener.ts | 33 ++--- .../externalUriOpener/common/configuration.ts | 22 ++- .../common/externalUriOpenerService.ts | 106 +++++++++++---- .../common/externalUriOpenerService.test.ts | 128 ++++++++++++++++++ .../url/browser/trustedDomainsValidator.ts | 87 +----------- .../workbench/contrib/url/common/urlGlob.ts | 88 ++++++++++++ 15 files changed, 397 insertions(+), 172 deletions(-) create mode 100644 src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts create mode 100644 src/vs/workbench/contrib/url/common/urlGlob.ts diff --git a/extensions/simple-browser/src/extension.ts b/extensions/simple-browser/src/extension.ts index 8ee1f0faaf2..7274a7343b7 100644 --- a/extensions/simple-browser/src/extension.ts +++ b/extensions/simple-browser/src/extension.ts @@ -49,15 +49,17 @@ export function activate(context: vscode.ExtensionContext) { canOpenExternalUri(uri: vscode.Uri) { const configuration = vscode.workspace.getConfiguration('simpleBrowser'); if (!configuration.get('opener.enabled', false)) { - return false; + return vscode.ExternalUriOpenerEnablement.Disabled; } const originalUri = new URL(uri.toString()); if (enabledHosts.has(originalUri.hostname)) { - return true; + return isWeb() + ? vscode.ExternalUriOpenerEnablement.Preferred + : vscode.ExternalUriOpenerEnablement.Enabled; } - return false; + return vscode.ExternalUriOpenerEnablement.Disabled; }, openExternalUri(resolveUri: vscode.Uri) { return manager.show(resolveUri.toString()); @@ -67,3 +69,8 @@ export function activate(context: vscode.ExtensionContext) { label: localize('openTitle', "Open in simple browser"), })); } + +function isWeb(): boolean { + // @ts-expect-error + return typeof navigator !== 'undefined' && vscode.env.uiKind === vscode.UIKind.Web; +} diff --git a/src/vs/editor/browser/services/openerService.ts b/src/vs/editor/browser/services/openerService.ts index a968cfad07e..5479ec29bd6 100644 --- a/src/vs/editor/browser/services/openerService.ts +++ b/src/vs/editor/browser/services/openerService.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as dom from 'vs/base/browser/dom'; +import { CancellationToken } from 'vs/base/common/cancellation'; import { IDisposable } from 'vs/base/common/lifecycle'; import { LinkedList } from 'vs/base/common/linkedList'; import { ResourceMap } from 'vs/base/common/map'; @@ -211,13 +212,13 @@ export class OpenerService implements IOpenerService { } for (const opener of this._externalOpeners) { - const didOpen = await opener.openExternal(href); + const didOpen = await opener.openExternal(href, { sourceUri: uri }, CancellationToken.None); if (didOpen) { return true; } } - return this._defaultExternalOpener.openExternal(href); + return this._defaultExternalOpener.openExternal(href, { sourceUri: uri }, CancellationToken.None); } dispose() { diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 6a51e49b9f1..35b306d602f 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -1876,3 +1876,13 @@ export interface ITokenizationRegistry { * @internal */ export const TokenizationRegistry = new TokenizationRegistryImpl(); + + +/** + * @internal + */ +export enum ExternalUriOpenerEnablement { + Disabled, + Enabled, + Preferred +} diff --git a/src/vs/platform/opener/common/opener.ts b/src/vs/platform/opener/common/opener.ts index c1ea8a6b349..3f96fc90032 100644 --- a/src/vs/platform/opener/common/opener.ts +++ b/src/vs/platform/opener/common/opener.ts @@ -3,11 +3,12 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { URI } from 'vs/base/common/uri'; -import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { IDisposable, Disposable } from 'vs/base/common/lifecycle'; +import { CancellationToken } from 'vs/base/common/cancellation'; +import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { equalsIgnoreCase, startsWithIgnoreCase } from 'vs/base/common/strings'; +import { URI } from 'vs/base/common/uri'; import { IEditorOptions } from 'vs/platform/editor/common/editor'; +import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; export const IOpenerService = createDecorator('openerService'); @@ -46,7 +47,7 @@ export interface IOpener { } export interface IExternalOpener { - openExternal(href: string): Promise; + openExternal(href: string, ctx: { sourceUri: URI }, token: CancellationToken): Promise; dispose?(): void; } diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index a9849d1eae4..d4f775ccc45 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -2288,6 +2288,23 @@ declare module 'vscode' { //#region Opener service (https://github.com/microsoft/vscode/issues/109277) + export enum ExternalUriOpenerEnablement { + /** + * The opener cannot handle the uri. + */ + Disabled = 0, + + /** + * The opener can handle the uri. + */ + Enabled = 1, + + /** + * The opener can handle the uri and should be automatically selected if possible. + */ + Preferred = 2 + } + /** * Handles opening uris to external resources, such as http(s) links. * @@ -2305,9 +2322,9 @@ declare module 'vscode' { * not yet gone through port forwarding. * @param token Cancellation token indicating that the result is no longer needed. * - * @return True if the opener can open the external uri. + * @return If the opener can open the external uri. */ - canOpenExternalUri(uri: Uri, token: CancellationToken): ProviderResult; + canOpenExternalUri(uri: Uri, token: CancellationToken): ProviderResult; /** * Open the given uri. diff --git a/src/vs/workbench/api/browser/mainThreadUriOpeners.ts b/src/vs/workbench/api/browser/mainThreadUriOpeners.ts index f521610aa0d..99e26769eb0 100644 --- a/src/vs/workbench/api/browser/mainThreadUriOpeners.ts +++ b/src/vs/workbench/api/browser/mainThreadUriOpeners.ts @@ -3,7 +3,6 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { CancellationToken } from 'vs/base/common/cancellation'; import { isPromiseCanceledError } from 'vs/base/common/errors'; import { Disposable } from 'vs/base/common/lifecycle'; import { Schemas } from 'vs/base/common/network'; @@ -13,7 +12,7 @@ import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { ExtHostContext, ExtHostUriOpenersShape, IExtHostContext, MainContext, MainThreadUriOpenersShape } from 'vs/workbench/api/common/extHost.protocol'; import { externalUriOpenerIdSchemaAddition } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; -import { ExternalOpenerEntry, IExternalOpenerProvider, IExternalUriOpenerService } from 'vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService'; +import { IExternalOpenerProvider, IExternalUriOpener, IExternalUriOpenerService } from 'vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { extHostNamedCustomer } from '../common/extHostCustomers'; @@ -31,45 +30,42 @@ export class MainThreadUriOpeners extends Disposable implements MainThreadUriOpe constructor( context: IExtHostContext, - @IExternalUriOpenerService private readonly externalUriOpenerService: IExternalUriOpenerService, + @IExternalUriOpenerService externalUriOpenerService: IExternalUriOpenerService, @IExtensionService private readonly extensionService: IExtensionService, @INotificationService private readonly notificationService: INotificationService, ) { super(); this.proxy = context.getProxy(ExtHostContext.ExtHostUriOpeners); - this._register(this.externalUriOpenerService.registerExternalOpenerProvider(this)); + this._register(externalUriOpenerService.registerExternalOpenerProvider(this)); } - public async provideExternalOpeners(href: string | URI): Promise { - const targetUri = typeof href === 'string' ? URI.parse(href) : href; + public async *getOpeners(targetUri: URI): AsyncIterable { // Currently we only allow openers for http and https urls if (targetUri.scheme !== Schemas.http && targetUri.scheme !== Schemas.https) { - return []; + return; } await this.extensionService.activateByEvent(`onUriOpen:${targetUri.scheme}`); - // If there are no handlers there is no point in making a round trip - const hasHandler = Array.from(this._registeredOpeners.values()).some(x => x.schemes.has(targetUri.scheme)); - if (!hasHandler) { - return []; + for (const [id, openerMetadata] of this._registeredOpeners) { + if (openerMetadata.schemes.has(targetUri.scheme)) { + yield this.createOpener(id, openerMetadata); + } } - - const openerIds = await this.proxy.$getOpenersForUri(targetUri, CancellationToken.None); - return openerIds.map(id => this.createOpener(id, targetUri)); } - private createOpener(openerId: string, sourceUri: URI): ExternalOpenerEntry { - const metadata = this._registeredOpeners.get(openerId)!; + private createOpener(id: string, metadata: RegisteredOpenerMetadata): IExternalUriOpener { return { - id: openerId, + id: id, label: metadata.label, - openExternal: async (href) => { - const resolveUri = URI.parse(href); + canOpen: (uri, token) => { + return this.proxy.$canOpenUri(id, uri, token); + }, + openExternalUri: async (uri, ctx, token) => { try { - await this.proxy.$openUri(openerId, { resolveUri, sourceUri }, CancellationToken.None); + await this.proxy.$openUri(id, { resolvedUri: uri, sourceUri: ctx.sourceUri }, token); } catch (e) { if (!isPromiseCanceledError(e)) { this.notificationService.error(localize('openerFailedMessage', "Could not open uri: {0}", e.toString())); diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts index 27c8d06fb5c..232d2734fd9 100644 --- a/src/vs/workbench/api/common/extHost.api.impl.ts +++ b/src/vs/workbench/api/common/extHost.api.impl.ts @@ -1133,6 +1133,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I EventEmitter: Emitter, ExtensionKind: extHostTypes.ExtensionKind, ExtensionMode: extHostTypes.ExtensionMode, + ExternalUriOpenerEnablement: extHostTypes.ExternalUriOpenerEnablement, FileChangeType: extHostTypes.FileChangeType, FileDecoration: extHostTypes.FileDecoration, FileSystemError: extHostTypes.FileSystemError, diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index c2a8614457f..a5f6d3ed535 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -807,8 +807,8 @@ export interface MainThreadUriOpenersShape extends IDisposable { } export interface ExtHostUriOpenersShape { - $getOpenersForUri(uri: UriComponents, token: CancellationToken): Promise; - $openUri(id: string, context: { resolveUri: UriComponents, sourceUri: UriComponents }, token: CancellationToken): Promise; + $canOpenUri(id: string, uri: UriComponents, token: CancellationToken): Promise; + $openUri(id: string, context: { resolvedUri: UriComponents, sourceUri: UriComponents }, token: CancellationToken): Promise; } export interface ITextSearchComplete { diff --git a/src/vs/workbench/api/common/extHostTypes.ts b/src/vs/workbench/api/common/extHostTypes.ts index a4cd5a326f6..e153af8aa46 100644 --- a/src/vs/workbench/api/common/extHostTypes.ts +++ b/src/vs/workbench/api/common/extHostTypes.ts @@ -2976,3 +2976,9 @@ export type RequiredTestItem = { //#endregion + +export enum ExternalUriOpenerEnablement { + Disabled = 0, + Enabled = 1, + Preferred = 2 +} diff --git a/src/vs/workbench/api/common/extHostUriOpener.ts b/src/vs/workbench/api/common/extHostUriOpener.ts index 7d8115d41e2..eaaaca2088d 100644 --- a/src/vs/workbench/api/common/extHostUriOpener.ts +++ b/src/vs/workbench/api/common/extHostUriOpener.ts @@ -6,6 +6,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; import { toDisposable } from 'vs/base/common/lifecycle'; import { URI, UriComponents } from 'vs/base/common/uri'; +import * as modes from 'vs/editor/common/modes'; import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import type * as vscode from 'vscode'; import { ExtHostUriOpenersShape, IMainContext, MainContext, MainThreadUriOpenersShape } from './extHost.protocol'; @@ -54,35 +55,23 @@ export class ExtHostUriOpeners implements ExtHostUriOpenersShape { }); } - async $getOpenersForUri(uriComponents: UriComponents, token: CancellationToken): Promise { + async $canOpenUri(id: string, uriComponents: UriComponents, token: CancellationToken): Promise { + const entry = this._openers.get(id); + if (!entry) { + throw new Error(`Unknown opener with id: ${id}`); + } + const uri = URI.revive(uriComponents); - - const promises = Array.from(this._openers.entries()) - .map(async ([id, { schemes, opener, }]): Promise => { - if (!schemes.has(uri.scheme)) { - return undefined; - } - - try { - if (await opener.canOpenExternalUri(uri, token)) { - return id; - } - } catch (e) { - console.log(e); - // noop - } - return undefined; - }); - - return (await Promise.all(promises)).filter(handle => typeof handle === 'string') as string[]; + const result = await entry.opener.canOpenExternalUri(uri, token); + return result ? result : modes.ExternalUriOpenerEnablement.Disabled; } - async $openUri(id: string, context: { resolveUri: UriComponents, sourceUri: UriComponents }, token: CancellationToken): Promise { + async $openUri(id: string, context: { resolvedUri: UriComponents, sourceUri: UriComponents }, token: CancellationToken): Promise { const entry = this._openers.get(id); if (!entry) { throw new Error(`Unknown opener id: '${id}'`); } - return entry.opener.openExternalUri(URI.revive(context.resolveUri), { + return entry.opener.openExternalUri(URI.revive(context.resolvedUri), { sourceUri: URI.revive(context.sourceUri) }, token); } diff --git a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts index b61f29d6937..fcd27ca5263 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts @@ -11,7 +11,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; export const externalUriOpenersSettingId = 'workbench.externalUriOpeners'; export interface ExternalUriOpenerConfiguration { - readonly hostname: string; + readonly uri: string; readonly id: string; } @@ -20,6 +20,18 @@ export const externalUriOpenerIdSchemaAddition: IJSONSchema = { enum: [] }; +const exampleUriPatterns = ` +- \`https://microsoft.com\`: Matches this specific domain using https +- \`https://microsoft.com:8080\`: Matches this specific domain on this port using https +- \`https://microsoft.com:*\`: Matches this specific domain on any port using https +- \`https://microsoft.com/foo\`: Matches \`https://microsoft.com/foo\` and \`https://microsoft.com/foo/bar\`, but not \`https://microsoft.com/foobar\` or \`https://microsoft.com/bar\` +- \`https://*.microsoft.com\`: Match all domains ending in \`microsoft.com\` using https +- \`microsoft.com\`: Match this specific domain using either http or https +- \`*.microsoft.com\`: Match all domains ending in \`microsoft.com\` using either http or https +- \`http://192.168.0.1\`: Matches this specific IP using http +- \`http://192.168.0.*\`: Matches all IP's with this prefix using http +- \`*\`: Match all domains using either http or https`; + export const externalUriOpenersConfigurationNode: IConfigurationNode = { ...workbenchConfigurationNodeBase, properties: { @@ -30,15 +42,15 @@ export const externalUriOpenersConfigurationNode: IConfigurationNode = { type: 'object', defaultSnippets: [{ body: { - 'hostname': '$1', + 'uri': '$1', 'id': '$2' } }], - required: ['hostname', 'id'], + required: ['uri', 'id'], properties: { - 'hostname': { + 'uri': { type: 'string', - description: nls.localize('externalUriOpeners.hostname', "The hostname of sites the opener applies to."), + markdownDescription: nls.localize('externalUriOpeners.uri', "Uri pattern that the opener applies to. Example patterns: \n{0}", exampleUriPatterns), }, 'id': { anyOf: [ diff --git a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts index 056e43eef95..75fa9995d8d 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts @@ -3,28 +3,35 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { firstOrDefault } from 'vs/base/common/arrays'; +import { CancellationToken } from 'vs/base/common/cancellation'; +import { Iterable } from 'vs/base/common/iterator'; import { Disposable, IDisposable } from 'vs/base/common/lifecycle'; import { LinkedList } from 'vs/base/common/linkedList'; import { URI } from 'vs/base/common/uri'; +import * as modes from 'vs/editor/common/modes'; import * as nls from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IExternalOpener, IOpenerService } from 'vs/platform/opener/common/opener'; import { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from 'vs/platform/quickinput/common/quickInput'; import { ExternalUriOpenerConfiguration, externalUriOpenersSettingId } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; +import { testUrlMatchesGlob } from 'vs/workbench/contrib/url/common/urlGlob'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; export const IExternalUriOpenerService = createDecorator('externalUriOpenerService'); -export interface ExternalOpenerEntry extends IExternalOpener { - readonly id: string; - readonly label: string; -} - - export interface IExternalOpenerProvider { - provideExternalOpeners(resource: URI | string): Promise; + getOpeners(targetUri: URI): AsyncIterable; +} + +export interface IExternalUriOpener { + readonly id: string; + readonly label: string; + + canOpen(uri: URI, token: CancellationToken): Promise; + openExternalUri(uri: URI, ctx: { sourceUri: URI }, token: CancellationToken): Promise; } export interface IExternalUriOpenerService { @@ -40,7 +47,7 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri public readonly _serviceBrand: undefined; - private readonly _externalOpenerProviders = new LinkedList(); + private readonly _providers = new LinkedList(); constructor( @IOpenerService openerService: IOpenerService, @@ -53,44 +60,89 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri } registerExternalOpenerProvider(provider: IExternalOpenerProvider): IDisposable { - const remove = this._externalOpenerProviders.push(provider); + const remove = this._providers.push(provider); return { dispose: remove }; } - async openExternal(href: string): Promise { + async openExternal(href: string, ctx: { sourceUri: URI }, token: CancellationToken): Promise { const targetUri = typeof href === 'string' ? URI.parse(href) : href; - const openers: ExternalOpenerEntry[] = []; - for (const provider of this._externalOpenerProviders) { - openers.push(...(await provider.provideExternalOpeners(targetUri))); - } + const allOpeners = new Map(); + await Promise.all(Iterable.map(this._providers, async (provider) => { + for await (const opener of provider.getOpeners(targetUri)) { + allOpeners.set(opener.id, opener); + } + })); - if (openers.length === 0) { + if (allOpeners.size === 0) { return false; } - const authority = targetUri.authority; + // First check to see if we have a configured opener + const configuredOpener = this.getConfiguredOpenerForUri(allOpeners, targetUri); + if (configuredOpener) { + return configuredOpener.openExternalUri(targetUri, ctx, token); + } + + // Then check to see if there is a valid opener + const validOpeners: Array<{ opener: IExternalUriOpener, preferred: boolean }> = []; + await Promise.all(Array.from(allOpeners.values()).map(async opener => { + switch (await opener.canOpen(targetUri, token)) { + case modes.ExternalUriOpenerEnablement.Enabled: + validOpeners.push({ opener, preferred: false }); + break; + + case modes.ExternalUriOpenerEnablement.Preferred: + validOpeners.push({ opener, preferred: true }); + break; + } + })); + if (validOpeners.length === 0) { + return false; + } + + // See if we have a preferred opener first + const preferred = firstOrDefault(validOpeners.filter(x => x.preferred)); + if (preferred) { + return preferred.opener.openExternalUri(targetUri, ctx, token); + } + + // Otherwise prompt + return this.showOpenerPrompt(validOpeners, targetUri, ctx, token); + } + + private getConfiguredOpenerForUri(openers: Map, targetUri: URI): IExternalUriOpener | undefined { const config = this.configurationService.getValue(externalUriOpenersSettingId) || []; - for (const entry of config) { - if (entry.hostname === authority) { - const opener = openers.find(opener => opener.id === entry.id); - if (opener) { - return opener.openExternal(href); + for (const { id, uri } of config) { + const entry = openers.get(id); + if (entry) { + if (testUrlMatchesGlob(targetUri.toString(), uri)) { + // Skip the `canOpen` check here since the opener was specifically requested. + return entry; } } } + return undefined; + } - type PickItem = IQuickPickItem & { opener?: IExternalOpener | 'configureDefault' }; - const items: Array = openers.map((opener, i): PickItem => { + private async showOpenerPrompt( + openers: ReadonlyArray<{ opener: IExternalUriOpener, preferred: boolean }>, + targetUri: URI, + ctx: { sourceUri: URI }, + token: CancellationToken + ): Promise { + type PickItem = IQuickPickItem & { opener?: IExternalUriOpener | 'configureDefault' }; + + const items: Array = openers.map((entry): PickItem => { return { - label: opener.label, - opener: opener + label: entry.opener.label, + opener: entry.opener }; }); items.push( { - label: 'Default', + label: nls.localize('selectOpenerDefaultLabel', 'Default external uri opener'), opener: undefined }, { type: 'separator' }, @@ -116,7 +168,7 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri }); return true; } else { - return picked.opener.openExternal(href); + return picked.opener.openExternalUri(targetUri, ctx, token); } } } diff --git a/src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts b/src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts new file mode 100644 index 00000000000..ab8fc8d7a8a --- /dev/null +++ b/src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts @@ -0,0 +1,128 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as assert from 'assert'; +import { CancellationToken } from 'vs/base/common/cancellation'; +import { Disposable } from 'vs/base/common/lifecycle'; +import { URI } from 'vs/base/common/uri'; +import { ExternalUriOpenerEnablement } from 'vs/editor/common/modes'; +import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; +import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; +import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; +import { IOpenerService } from 'vs/platform/opener/common/opener'; +import { IPickOptions, IQuickInputService, IQuickPickItem, QuickPickInput } from 'vs/platform/quickinput/common/quickInput'; +import { ExternalUriOpenerService, IExternalOpenerProvider, IExternalUriOpener } from 'vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService'; + + +class MockQuickInputService implements Partial{ + + constructor( + private readonly pickIndex: number + ) { } + + public pick(picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: true }, token?: CancellationToken): Promise; + public pick(picks: Promise[]> | QuickPickInput[], options?: IPickOptions & { canPickMany: false }, token?: CancellationToken): Promise; + public async pick(picks: Promise[]> | QuickPickInput[], options?: Omit, 'canPickMany'>, token?: CancellationToken): Promise { + const resolvedPicks = await picks; + const item = resolvedPicks[this.pickIndex]; + if (item.type === 'separator') { + return undefined; + } + return item; + } + +} + +suite('ExternalUriOpenerService', () => { + + let instantiationService: TestInstantiationService; + + setup(() => { + instantiationService = new TestInstantiationService(); + + instantiationService.stub(IConfigurationService, new TestConfigurationService()); + instantiationService.stub(IOpenerService, { + registerExternalOpener: () => { return Disposable.None; } + }); + }); + + test('Should not open if there are no openers', async () => { + const externalUriOpenerService: ExternalUriOpenerService = instantiationService.createInstance(ExternalUriOpenerService); + + externalUriOpenerService.registerExternalOpenerProvider(new class implements IExternalOpenerProvider { + async *getOpeners(_targetUri: URI): AsyncGenerator { + // noop + } + }); + + const uri = URI.parse('http://contoso.com'); + const didOpen = await externalUriOpenerService.openExternal(uri.toString(), { sourceUri: uri }, CancellationToken.None); + assert.strictEqual(didOpen, false); + }); + + test('Should prompt if there is at least one enabled opener', async () => { + instantiationService.stub(IQuickInputService, new MockQuickInputService(0)); + + const externalUriOpenerService: ExternalUriOpenerService = instantiationService.createInstance(ExternalUriOpenerService); + + let openedWithEnabled = false; + externalUriOpenerService.registerExternalOpenerProvider(new class implements IExternalOpenerProvider { + async *getOpeners(_targetUri: URI): AsyncGenerator { + yield { + id: 'disabled-id', + label: 'disabled', + canOpen: async () => ExternalUriOpenerEnablement.Disabled, + openExternalUri: async () => true, + }; + yield { + id: 'enabled-id', + label: 'enabled', + canOpen: async () => ExternalUriOpenerEnablement.Enabled, + openExternalUri: async () => { + openedWithEnabled = true; + return true; + } + }; + } + }); + + const uri = URI.parse('http://contoso.com'); + const didOpen = await externalUriOpenerService.openExternal(uri.toString(), { sourceUri: uri }, CancellationToken.None); + assert.strictEqual(didOpen, true); + assert.strictEqual(openedWithEnabled, true); + }); + + test('Should automatically pick single preferred opener without prompt', async () => { + const externalUriOpenerService: ExternalUriOpenerService = instantiationService.createInstance(ExternalUriOpenerService); + + let openedWithPreferred = false; + externalUriOpenerService.registerExternalOpenerProvider(new class implements IExternalOpenerProvider { + async *getOpeners(_targetUri: URI): AsyncGenerator { + yield { + id: 'other-id', + label: 'other', + canOpen: async () => ExternalUriOpenerEnablement.Enabled, + openExternalUri: async () => { + return true; + } + }; + yield { + id: 'preferred-id', + label: 'preferred', + canOpen: async () => ExternalUriOpenerEnablement.Preferred, + openExternalUri: async () => { + openedWithPreferred = true; + return true; + } + }; + } + }); + + const uri = URI.parse('http://contoso.com'); + const didOpen = await externalUriOpenerService.openExternal(uri.toString(), { sourceUri: uri }, CancellationToken.None); + assert.strictEqual(didOpen, true); + assert.strictEqual(openedWithPreferred, true); + }); +}); diff --git a/src/vs/workbench/contrib/url/browser/trustedDomainsValidator.ts b/src/vs/workbench/contrib/url/browser/trustedDomainsValidator.ts index c8f144bdaf3..564cf24f9cb 100644 --- a/src/vs/workbench/contrib/url/browser/trustedDomainsValidator.ts +++ b/src/vs/workbench/contrib/url/browser/trustedDomainsValidator.ts @@ -22,6 +22,7 @@ import { INotificationService } from 'vs/platform/notification/common/notificati import { IdleValue } from 'vs/base/common/async'; import { IAuthenticationService } from 'vs/workbench/services/authentication/browser/authenticationService'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; +import { testUrlMatchesGlob } from 'vs/workbench/contrib/url/common/urlGlob'; type TrustedDomainsDialogActionClassification = { action: { classification: 'SystemMetaData', purpose: 'FeatureInsight' }; @@ -216,94 +217,10 @@ export function isURLDomainTrusted(url: URI, trustedDomains: string[]) { return true; } - if (isTrusted(url.toString(), trustedDomains[i])) { + if (testUrlMatchesGlob(url.toString(), trustedDomains[i])) { return true; } } return false; } - -export const isTrusted = (url: string, trustedURL: string): boolean => { - const normalize = (url: string) => url.replace(/\/+$/, ''); - trustedURL = normalize(trustedURL); - url = normalize(url); - - const memo = Array.from({ length: url.length + 1 }).map(() => - Array.from({ length: trustedURL.length + 1 }).map(() => undefined), - ); - - if (/^[^./:]*:\/\//.test(trustedURL)) { - return doURLMatch(memo, url, trustedURL, 0, 0); - } - - const scheme = /^(https?):\/\//.exec(url)?.[1]; - if (scheme) { - return doURLMatch(memo, url, `${scheme}://${trustedURL}`, 0, 0); - } - - return false; -}; - -const doURLMatch = ( - memo: (boolean | undefined)[][], - url: string, - trustedURL: string, - urlOffset: number, - trustedURLOffset: number, -): boolean => { - if (memo[urlOffset]?.[trustedURLOffset] !== undefined) { - return memo[urlOffset][trustedURLOffset]!; - } - - const options = []; - - // Endgame. - // Fully exact match - if (urlOffset === url.length) { - return trustedURLOffset === trustedURL.length; - } - - // Some path remaining in url - if (trustedURLOffset === trustedURL.length) { - const remaining = url.slice(urlOffset); - return remaining[0] === '/'; - } - - if (url[urlOffset] === trustedURL[trustedURLOffset]) { - // Exact match. - options.push(doURLMatch(memo, url, trustedURL, urlOffset + 1, trustedURLOffset + 1)); - } - - if (trustedURL[trustedURLOffset] + trustedURL[trustedURLOffset + 1] === '*.') { - // Any subdomain match. Either consume one thing that's not a / or : and don't advance base or consume nothing and do. - if (!['/', ':'].includes(url[urlOffset])) { - options.push(doURLMatch(memo, url, trustedURL, urlOffset + 1, trustedURLOffset)); - } - options.push(doURLMatch(memo, url, trustedURL, urlOffset, trustedURLOffset + 2)); - } - - if (trustedURL[trustedURLOffset] === '*') { - // Any match. Either consume one thing and don't advance base or consume nothing and do. - if (urlOffset + 1 === url.length) { - // If we're at the end of the input url consume one from both. - options.push(doURLMatch(memo, url, trustedURL, urlOffset + 1, trustedURLOffset + 1)); - } else { - options.push(doURLMatch(memo, url, trustedURL, urlOffset + 1, trustedURLOffset)); - } - options.push(doURLMatch(memo, url, trustedURL, urlOffset, trustedURLOffset + 1)); - } - - if (trustedURL[trustedURLOffset] + trustedURL[trustedURLOffset + 1] === ':*') { - // any port match. Consume a port if it exists otherwise nothing. Always comsume the base. - if (url[urlOffset] === ':') { - let endPortIndex = urlOffset + 1; - do { endPortIndex++; } while (/[0-9]/.test(url[endPortIndex])); - options.push(doURLMatch(memo, url, trustedURL, endPortIndex, trustedURLOffset + 2)); - } else { - options.push(doURLMatch(memo, url, trustedURL, urlOffset, trustedURLOffset + 2)); - } - } - - return (memo[urlOffset][trustedURLOffset] = options.some(a => a === true)); -}; diff --git a/src/vs/workbench/contrib/url/common/urlGlob.ts b/src/vs/workbench/contrib/url/common/urlGlob.ts new file mode 100644 index 00000000000..8893796290c --- /dev/null +++ b/src/vs/workbench/contrib/url/common/urlGlob.ts @@ -0,0 +1,88 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +export const testUrlMatchesGlob = (url: string, globUrl: string): boolean => { + const normalize = (url: string) => url.replace(/\/+$/, ''); + globUrl = normalize(globUrl); + url = normalize(url); + + const memo = Array.from({ length: url.length + 1 }).map(() => + Array.from({ length: globUrl.length + 1 }).map(() => undefined), + ); + + if (/^[^./:]*:\/\//.test(globUrl)) { + return doUrlMatch(memo, url, globUrl, 0, 0); + } + + const scheme = /^(https?):\/\//.exec(url)?.[1]; + if (scheme) { + return doUrlMatch(memo, url, `${scheme}://${globUrl}`, 0, 0); + } + + return false; +}; + +const doUrlMatch = ( + memo: (boolean | undefined)[][], + url: string, + globUrl: string, + urlOffset: number, + globUrlOffset: number, +): boolean => { + if (memo[urlOffset]?.[globUrlOffset] !== undefined) { + return memo[urlOffset][globUrlOffset]!; + } + + const options = []; + + // Endgame. + // Fully exact match + if (urlOffset === url.length) { + return globUrlOffset === globUrl.length; + } + + // Some path remaining in url + if (globUrlOffset === globUrl.length) { + const remaining = url.slice(urlOffset); + return remaining[0] === '/'; + } + + if (url[urlOffset] === globUrl[globUrlOffset]) { + // Exact match. + options.push(doUrlMatch(memo, url, globUrl, urlOffset + 1, globUrlOffset + 1)); + } + + if (globUrl[globUrlOffset] + globUrl[globUrlOffset + 1] === '*.') { + // Any subdomain match. Either consume one thing that's not a / or : and don't advance base or consume nothing and do. + if (!['/', ':'].includes(url[urlOffset])) { + options.push(doUrlMatch(memo, url, globUrl, urlOffset + 1, globUrlOffset)); + } + options.push(doUrlMatch(memo, url, globUrl, urlOffset, globUrlOffset + 2)); + } + + if (globUrl[globUrlOffset] === '*') { + // Any match. Either consume one thing and don't advance base or consume nothing and do. + if (urlOffset + 1 === url.length) { + // If we're at the end of the input url consume one from both. + options.push(doUrlMatch(memo, url, globUrl, urlOffset + 1, globUrlOffset + 1)); + } else { + options.push(doUrlMatch(memo, url, globUrl, urlOffset + 1, globUrlOffset)); + } + options.push(doUrlMatch(memo, url, globUrl, urlOffset, globUrlOffset + 1)); + } + + if (globUrl[globUrlOffset] + globUrl[globUrlOffset + 1] === ':*') { + // any port match. Consume a port if it exists otherwise nothing. Always comsume the base. + if (url[urlOffset] === ':') { + let endPortIndex = urlOffset + 1; + do { endPortIndex++; } while (/[0-9]/.test(url[endPortIndex])); + options.push(doUrlMatch(memo, url, globUrl, endPortIndex, globUrlOffset + 2)); + } else { + options.push(doUrlMatch(memo, url, globUrl, urlOffset, globUrlOffset + 2)); + } + } + + return (memo[urlOffset][globUrlOffset] = options.some(a => a === true)); +}; From 835a1ce6efda15175da55ff2aac0298b6adc3b1a Mon Sep 17 00:00:00 2001 From: rebornix Date: Wed, 13 Jan 2021 18:10:58 -0800 Subject: [PATCH 049/171] allow execution against a hidden notebook editor. --- .../notebook/browser/contrib/coreActions.ts | 45 +++++- .../notebook/browser/notebook.contribution.ts | 3 + .../notebook/browser/notebookEditor.ts | 2 +- .../browser/notebookEditorWidgetService.ts | 142 +---------------- .../notebookEditorWidgetServiceImpl.ts | 145 ++++++++++++++++++ 5 files changed, 191 insertions(+), 146 deletions(-) create mode 100644 src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetServiceImpl.ts diff --git a/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts b/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts index 0b55cb204ca..7601e595356 100644 --- a/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts +++ b/src/vs/workbench/contrib/notebook/browser/contrib/coreActions.ts @@ -17,7 +17,7 @@ import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService import { CommandsRegistry, ICommandService } from 'vs/platform/commands/common/commands'; import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { InputFocusedContext, InputFocusedContextKey } from 'vs/platform/contextkey/common/contextkeys'; -import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; +import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { IQuickInputService, IQuickPickItem, QuickPickInput } from 'vs/platform/quickinput/common/quickInput'; import { CATEGORIES } from 'vs/workbench/common/actions'; @@ -29,6 +29,9 @@ import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editor import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import * as icons from 'vs/workbench/contrib/notebook/browser/notebookIcons'; import { CancellationTokenSource } from 'vs/base/common/cancellation'; +import { NotebookEditorInput } from 'vs/workbench/contrib/notebook/browser/notebookEditorInput'; +import { EditorsOrder } from 'vs/workbench/common/editor'; +import { INotebookEditorWidgetService } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidgetService'; // Notebook Commands const EXECUTE_NOTEBOOK_COMMAND_ID = 'notebook.execute'; @@ -180,16 +183,16 @@ abstract class NotebookCellAction extends Notebo return !!context && !!(context as INotebookCellActionContext).notebookEditor && !!(context as INotebookCellActionContext).cell; } - protected getCellContextFromArgs(accessor: ServicesAccessor, context?: T): INotebookCellActionContext | undefined { + protected getCellContextFromArgs(accessor: ServicesAccessor, context?: T, ...additionalArgs: any[]): INotebookCellActionContext | undefined { return undefined; } - async run(accessor: ServicesAccessor, context?: INotebookCellActionContext): Promise { + async run(accessor: ServicesAccessor, context?: INotebookCellActionContext, ...additionalArgs: any[]): Promise { if (this.isCellActionContext(context)) { return this.runWithContext(accessor, context); } - const contextFromArgs = this.getCellContextFromArgs(accessor, context); + const contextFromArgs = this.getCellContextFromArgs(accessor, context, ...additionalArgs); if (contextFromArgs) { return this.runWithContext(accessor, contextFromArgs); @@ -235,6 +238,11 @@ registerAction2(class extends NotebookCellAction { } } } + }, + { + name: 'uri', + description: 'The document uri', + constraint: URI } ] }, @@ -242,11 +250,38 @@ registerAction2(class extends NotebookCellAction { }); } - getCellContextFromArgs(accessor: ServicesAccessor, context?: ICellRange): INotebookCellActionContext | undefined { + getCellContextFromArgs(accessor: ServicesAccessor, context?: ICellRange, ...additionalArgs: any[]): INotebookCellActionContext | undefined { if (!context || typeof context.start !== 'number' || typeof context.end !== 'number' || context.start >= context.end) { return; } + if (additionalArgs.length && additionalArgs[0]) { + const uri = URI.revive(additionalArgs[0]); + + if (uri) { + // we will run cell against this document + const editorService = accessor.get(IEditorService); + const editorGroupService = accessor.get(IEditorGroupsService); + const instantiationService = accessor.get(IInstantiationService); + const notebookWidgetService = accessor.get(INotebookEditorWidgetService); + const editorId = editorService.getEditors(EditorsOrder.SEQUENTIAL).find(editorId => editorId.editor instanceof NotebookEditorInput && editorId.editor.resource?.toString() === uri.toString()); + + if (editorId) { + const group = editorGroupService.getGroup(editorId.groupId); + const widget = instantiationService.invokeFunction(notebookWidgetService.retrieveWidget, group!, editorId.editor as NotebookEditorInput); + + if (widget.value?.hasModel()) { + const cells = widget.value.viewModel.viewCells; + + return { + notebookEditor: widget.value!, + cell: cells[context.start] + }; + } + } + } + } + const activeEditorContext = this.getActiveEditorContext(accessor); if (!activeEditorContext || !activeEditorContext.notebookEditor.viewModel || context.start >= activeEditorContext.notebookEditor.viewModel.viewCells.length) { diff --git a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts index 6fd953eeec8..91dace927d8 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts @@ -47,6 +47,8 @@ import { INotebookEditorWorkerService } from 'vs/workbench/contrib/notebook/comm import { NotebookEditorWorkerServiceImpl } from 'vs/workbench/contrib/notebook/common/services/notebookWorkerServiceImpl'; import { INotebookCellStatusBarService } from 'vs/workbench/contrib/notebook/common/notebookCellStatusBarService'; import { NotebookCellStatusBarService } from 'vs/workbench/contrib/notebook/browser/notebookCellStatusBarServiceImpl'; +import { INotebookEditorWidgetService } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidgetService'; +import { NotebookEditorWidgetService } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidgetServiceImpl'; import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; @@ -619,6 +621,7 @@ registerSingleton(INotebookService, NotebookService); registerSingleton(INotebookEditorWorkerService, NotebookEditorWorkerServiceImpl); registerSingleton(INotebookEditorModelResolverService, NotebookModelResolverService, true); registerSingleton(INotebookCellStatusBarService, NotebookCellStatusBarService, true); +registerSingleton(INotebookEditorWidgetService, NotebookEditorWidgetService, true); const configurationRegistry = Registry.as(Extensions.Configuration); configurationRegistry.registerConfiguration({ diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts index 8fbb90be9c1..8436d979d46 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditor.ts @@ -20,13 +20,13 @@ import { EditorPane } from 'vs/workbench/browser/parts/editor/editorPane'; import { EditorOptions, IEditorInput, IEditorMemento, IEditorOpenContext } from 'vs/workbench/common/editor'; import { NotebookEditorInput } from 'vs/workbench/contrib/notebook/browser/notebookEditorInput'; import { NotebookEditorWidget } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidget'; -import { IBorrowValue, INotebookEditorWidgetService } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidgetService'; import { INotebookEditorViewState, NotebookViewModel } from 'vs/workbench/contrib/notebook/browser/viewModel/notebookViewModel'; import { IEditorDropService } from 'vs/workbench/services/editor/browser/editorDropService'; import { IEditorGroup, IEditorGroupsService, GroupsOrder } from 'vs/workbench/services/editor/common/editorGroupsService'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { NotebookEditorOptions } from 'vs/workbench/contrib/notebook/browser/notebookBrowser'; import { INotebookService } from 'vs/workbench/contrib/notebook/common/notebookService'; +import { IBorrowValue, INotebookEditorWidgetService } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidgetService'; const NOTEBOOK_EDITOR_VIEW_STATE_PREFERENCE_KEY = 'NotebookEditorViewState'; diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetService.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetService.ts index f9650ad09a1..3f8fc791454 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetService.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetService.ts @@ -3,14 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ResourceMap } from 'vs/base/common/map'; import { NotebookEditorWidget } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidget'; -import { DisposableStore, IDisposable } from 'vs/base/common/lifecycle'; -import { IEditorGroupsService, IEditorGroup, GroupChangeKind, OpenEditorContext } from 'vs/workbench/services/editor/common/editorGroupsService'; -import { IInstantiationService, createDecorator, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; +import { IEditorGroup } from 'vs/workbench/services/editor/common/editorGroupsService'; +import { createDecorator, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { NotebookEditorInput } from 'vs/workbench/contrib/notebook/browser/notebookEditorInput'; -import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; export const INotebookEditorWidgetService = createDecorator('INotebookEditorWidgetService'); @@ -22,137 +18,3 @@ export interface INotebookEditorWidgetService { _serviceBrand: undefined; retrieveWidget(accessor: ServicesAccessor, group: IEditorGroup, input: NotebookEditorInput): IBorrowValue; } - -class NotebookEditorWidgetService implements INotebookEditorWidgetService { - - readonly _serviceBrand: undefined; - - private _tokenPool = 1; - - private readonly _notebookWidgets = new Map>(); - private readonly _disposables = new DisposableStore(); - - constructor( - @IEditorGroupsService editorGroupService: IEditorGroupsService, - @IEditorService editorService: IEditorService, - ) { - - const groupListener = new Map(); - const onNewGroup = (group: IEditorGroup) => { - const { id } = group; - const listener = group.onDidGroupChange(e => { - const widgets = this._notebookWidgets.get(group.id); - if (!widgets || e.kind !== GroupChangeKind.EDITOR_CLOSE || !(e.editor instanceof NotebookEditorInput)) { - return; - } - const value = widgets.get(e.editor.resource); - if (!value) { - return; - } - value.token = undefined; - this._disposeWidget(value.widget); - widgets.delete(e.editor.resource); - }); - groupListener.set(id, listener); - }; - this._disposables.add(editorGroupService.onDidAddGroup(onNewGroup)); - editorGroupService.groups.forEach(onNewGroup); - - // group removed -> clean up listeners, clean up widgets - this._disposables.add(editorGroupService.onDidRemoveGroup(group => { - const listener = groupListener.get(group.id); - if (listener) { - listener.dispose(); - groupListener.delete(group.id); - } - const widgets = this._notebookWidgets.get(group.id); - this._notebookWidgets.delete(group.id); - if (widgets) { - for (const value of widgets.values()) { - value.token = undefined; - this._disposeWidget(value.widget); - } - } - })); - - // HACK - // we use the open override to spy on tab movements because that's the only - // way to do that... - this._disposables.add(editorService.overrideOpenEditor({ - open: (input, _options, group, context) => { - if (input instanceof NotebookEditorInput && context === OpenEditorContext.MOVE_EDITOR) { - // when moving a notebook editor we release it from its current tab and we - // "place" it into its future slot so that the editor can pick it up from there - this._freeWidget(input, editorGroupService.activeGroup, group); - } - return undefined; - } - })); - } - - private _disposeWidget(widget: NotebookEditorWidget): void { - widget.onWillHide(); - const domNode = widget.getDomNode(); - widget.dispose(); - domNode.remove(); - } - - private _freeWidget(input: NotebookEditorInput, source: IEditorGroup, target: IEditorGroup): void { - const targetWidget = this._notebookWidgets.get(target.id)?.get(input.resource); - if (targetWidget) { - // not needed - return; - } - - const widget = this._notebookWidgets.get(source.id)?.get(input.resource); - if (!widget) { - throw new Error('no widget at source group'); - } - this._notebookWidgets.get(source.id)?.delete(input.resource); - widget.token = undefined; - - let targetMap = this._notebookWidgets.get(target.id); - if (!targetMap) { - targetMap = new ResourceMap(); - this._notebookWidgets.set(target.id, targetMap); - } - targetMap.set(input.resource, widget); - } - - retrieveWidget(accessor: ServicesAccessor, group: IEditorGroup, input: NotebookEditorInput): IBorrowValue { - - let value = this._notebookWidgets.get(group.id)?.get(input.resource); - - if (!value) { - // NEW widget - const instantiationService = accessor.get(IInstantiationService); - const widget = instantiationService.createInstance(NotebookEditorWidget, { isEmbedded: false }); - const token = this._tokenPool++; - value = { widget, token }; - - let map = this._notebookWidgets.get(group.id); - if (!map) { - map = new ResourceMap(); - this._notebookWidgets.set(group.id, map); - } - map.set(input.resource, value); - - } else { - // reuse a widget which was either free'ed before or which - // is simply being reused... - value.token = this._tokenPool++; - } - - return this._createBorrowValue(value.token!, value); - } - - private _createBorrowValue(myToken: number, widget: { widget: NotebookEditorWidget, token: number | undefined }): IBorrowValue { - return { - get value() { - return widget.token === myToken ? widget.widget : undefined; - } - }; - } -} - -registerSingleton(INotebookEditorWidgetService, NotebookEditorWidgetService, true); diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetServiceImpl.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetServiceImpl.ts new file mode 100644 index 00000000000..ddc3d303b5b --- /dev/null +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidgetServiceImpl.ts @@ -0,0 +1,145 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { ResourceMap } from 'vs/base/common/map'; +import { NotebookEditorWidget } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidget'; +import { DisposableStore, IDisposable } from 'vs/base/common/lifecycle'; +import { IEditorGroupsService, IEditorGroup, GroupChangeKind, OpenEditorContext } from 'vs/workbench/services/editor/common/editorGroupsService'; +import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; +import { NotebookEditorInput } from 'vs/workbench/contrib/notebook/browser/notebookEditorInput'; +import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; +import { IBorrowValue, INotebookEditorWidgetService } from 'vs/workbench/contrib/notebook/browser/notebookEditorWidgetService'; + +export class NotebookEditorWidgetService implements INotebookEditorWidgetService { + + readonly _serviceBrand: undefined; + + private _tokenPool = 1; + + private readonly _notebookWidgets = new Map>(); + private readonly _disposables = new DisposableStore(); + + constructor( + @IEditorGroupsService editorGroupService: IEditorGroupsService, + @IEditorService editorService: IEditorService, + ) { + + const groupListener = new Map(); + const onNewGroup = (group: IEditorGroup) => { + const { id } = group; + const listener = group.onDidGroupChange(e => { + const widgets = this._notebookWidgets.get(group.id); + if (!widgets || e.kind !== GroupChangeKind.EDITOR_CLOSE || !(e.editor instanceof NotebookEditorInput)) { + return; + } + const value = widgets.get(e.editor.resource); + if (!value) { + return; + } + value.token = undefined; + this._disposeWidget(value.widget); + widgets.delete(e.editor.resource); + }); + groupListener.set(id, listener); + }; + this._disposables.add(editorGroupService.onDidAddGroup(onNewGroup)); + editorGroupService.groups.forEach(onNewGroup); + + // group removed -> clean up listeners, clean up widgets + this._disposables.add(editorGroupService.onDidRemoveGroup(group => { + const listener = groupListener.get(group.id); + if (listener) { + listener.dispose(); + groupListener.delete(group.id); + } + const widgets = this._notebookWidgets.get(group.id); + this._notebookWidgets.delete(group.id); + if (widgets) { + for (const value of widgets.values()) { + value.token = undefined; + this._disposeWidget(value.widget); + } + } + })); + + // HACK + // we use the open override to spy on tab movements because that's the only + // way to do that... + this._disposables.add(editorService.overrideOpenEditor({ + open: (input, _options, group, context) => { + if (input instanceof NotebookEditorInput && context === OpenEditorContext.MOVE_EDITOR) { + // when moving a notebook editor we release it from its current tab and we + // "place" it into its future slot so that the editor can pick it up from there + this._freeWidget(input, editorGroupService.activeGroup, group); + } + return undefined; + } + })); + } + + private _disposeWidget(widget: NotebookEditorWidget): void { + widget.onWillHide(); + const domNode = widget.getDomNode(); + widget.dispose(); + domNode.remove(); + } + + private _freeWidget(input: NotebookEditorInput, source: IEditorGroup, target: IEditorGroup): void { + const targetWidget = this._notebookWidgets.get(target.id)?.get(input.resource); + if (targetWidget) { + // not needed + return; + } + + const widget = this._notebookWidgets.get(source.id)?.get(input.resource); + if (!widget) { + throw new Error('no widget at source group'); + } + this._notebookWidgets.get(source.id)?.delete(input.resource); + widget.token = undefined; + + let targetMap = this._notebookWidgets.get(target.id); + if (!targetMap) { + targetMap = new ResourceMap(); + this._notebookWidgets.set(target.id, targetMap); + } + targetMap.set(input.resource, widget); + } + + retrieveWidget(accessor: ServicesAccessor, group: IEditorGroup, input: NotebookEditorInput): IBorrowValue { + + let value = this._notebookWidgets.get(group.id)?.get(input.resource); + + if (!value) { + // NEW widget + const instantiationService = accessor.get(IInstantiationService); + const widget = instantiationService.createInstance(NotebookEditorWidget, { isEmbedded: false }); + const token = this._tokenPool++; + value = { widget, token }; + + let map = this._notebookWidgets.get(group.id); + if (!map) { + map = new ResourceMap(); + this._notebookWidgets.set(group.id, map); + } + map.set(input.resource, value); + + } else { + // reuse a widget which was either free'ed before or which + // is simply being reused... + value.token = this._tokenPool++; + } + + return this._createBorrowValue(value.token!, value); + } + + private _createBorrowValue(myToken: number, widget: { widget: NotebookEditorWidget, token: number | undefined }): IBorrowValue { + return { + get value() { + return widget.token === myToken ? widget.widget : undefined; + } + }; + } +} From 7ae54ca2d6f0a3989b3b8fce1c2ebe6b97ff6a5c Mon Sep 17 00:00:00 2001 From: isidor Date: Thu, 14 Jan 2021 19:44:51 +0100 Subject: [PATCH 050/171] breakpoint widget: use same mode for coloring as the underlying editor --- src/vs/workbench/contrib/debug/browser/breakpointWidget.ts | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/vs/workbench/contrib/debug/browser/breakpointWidget.ts b/src/vs/workbench/contrib/debug/browser/breakpointWidget.ts index 362d0544725..cc8b39633d1 100644 --- a/src/vs/workbench/contrib/debug/browser/breakpointWidget.ts +++ b/src/vs/workbench/contrib/debug/browser/breakpointWidget.ts @@ -221,6 +221,9 @@ export class BreakpointWidget extends ZoneWidget implements IPrivateBreakpointWi this.input = scopedInstatiationService.createInstance(CodeEditorWidget, container, options, codeEditorWidgetOptions); CONTEXT_IN_BREAKPOINT_WIDGET.bindTo(scopedContextKeyService).set(true); const model = this.modelService.createModel('', null, uri.parse(`${DEBUG_SCHEME}:${this.editor.getId()}:breakpointinput`), true); + if (this.editor.hasModel()) { + model.setMode(this.editor.getModel().getLanguageIdentifier()); + } this.input.setModel(model); this.toDispose.push(model); const setDecorations = () => { From 55960b7d61eff89ca17bfc317bbab7b66b672d87 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 14 Jan 2021 10:46:30 -0800 Subject: [PATCH 051/171] add flowControl to terminalConfig --- .../workbench/contrib/terminal/common/remoteTerminalChannel.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts b/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts index 5e72f5ce249..7bb09335710 100644 --- a/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts +++ b/src/vs/workbench/contrib/terminal/common/remoteTerminalChannel.ts @@ -53,6 +53,7 @@ export interface ICompleteTerminalConfiguration { 'terminal.integrated.inheritEnv': boolean; 'terminal.integrated.cwd': string; 'terminal.integrated.detectLocale': 'auto' | 'off' | 'on'; + 'terminal.flowControl': boolean; } export type ITerminalEnvironmentVariableCollections = [string, ISerializableEnvironmentVariableCollection][]; @@ -248,6 +249,7 @@ export class RemoteTerminalChannelClient { 'terminal.integrated.inheritEnv': terminalConfig.inheritEnv, 'terminal.integrated.cwd': terminalConfig.cwd, 'terminal.integrated.detectLocale': terminalConfig.detectLocale, + 'terminal.flowControl': terminalConfig.flowControl }; // We will use the resolver service to resolve all the variables in the config / launch config From f34a3ace3f98e4b13fb2dd8336ea77577fb8727c Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 14 Jan 2021 10:50:48 -0800 Subject: [PATCH 052/171] update distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index f3bba992596..a02dd60d25d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "6e1ccff8c02eb1f68593a87858a87887a236fc40", + "distro": "7c375a0219a5ba116446f459a0c1b711bc480fc6", "author": { "name": "Microsoft Corporation" }, From d03490f3532195449d68bb97e31d5a4741ad6630 Mon Sep 17 00:00:00 2001 From: isidor Date: Thu, 14 Jan 2021 19:59:55 +0100 Subject: [PATCH 053/171] fixes #114203 --- src/vs/workbench/services/label/common/labelService.ts | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/vs/workbench/services/label/common/labelService.ts b/src/vs/workbench/services/label/common/labelService.ts index 74dc864bf51..e4114d964aa 100644 --- a/src/vs/workbench/services/label/common/labelService.ts +++ b/src/vs/workbench/services/label/common/labelService.ts @@ -21,6 +21,7 @@ import { match } from 'vs/base/common/glob'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; +import { hasDriveLetter } from 'vs/base/common/extpath'; const resourceLabelFormattersExtPoint = ExtensionsRegistry.registerExtensionPoint({ extensionPoint: 'resourceLabelFormatters', @@ -73,10 +74,6 @@ const resourceLabelFormattersExtPoint = ExtensionsRegistry.registerExtensionPoin const sepRegexp = /\//g; const labelMatchingRegexp = /\$\{(scheme|authority|path|(query)\.(.+?))\}/g; -function hasDriveLetter(path: string): boolean { - return !!(path && path[2] === ':'); -} - class ResourceLabelFormattersHandler implements IWorkbenchContribution { private formattersDisposables = new Map(); From e12a9d74a627982f224ae075f2198cfc3ecb4fd3 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Thu, 14 Jan 2021 20:12:06 +0100 Subject: [PATCH 054/171] #114144 fix remote explorer icon flickering --- .../parts/activitybar/activitybarPart.ts | 118 +++++++++++------- 1 file changed, 70 insertions(+), 48 deletions(-) diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index 6cf24bcb318..546ac57e232 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -23,9 +23,9 @@ import { IStorageService, StorageScope, IStorageValueChangeEvent, StorageTarget import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { URI, UriComponents } from 'vs/base/common/uri'; import { ToggleCompositePinnedAction, ICompositeBarColors, ActivityAction, ICompositeActivity } from 'vs/workbench/browser/parts/compositeBarActions'; -import { IViewDescriptorService, ViewContainer, TEST_VIEW_CONTAINER_ID, IViewContainerModel, ViewContainerLocation, IViewsService } from 'vs/workbench/common/views'; +import { IViewDescriptorService, ViewContainer, IViewContainerModel, ViewContainerLocation, IViewsService } from 'vs/workbench/common/views'; import { IContextKeyService, ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; -import { assertIsDefined } from 'vs/base/common/types'; +import { assertIsDefined, isString } from 'vs/base/common/types'; import { IActivityBarService } from 'vs/workbench/services/activityBar/browser/activityBarService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; @@ -49,6 +49,7 @@ interface IPlaceholderViewContainer { readonly name?: string; readonly iconUrl?: UriComponents; readonly themeIcon?: ThemeIcon; + readonly isBuiltin?: boolean; readonly views?: { when?: string; }[]; } @@ -66,6 +67,7 @@ interface ICachedViewContainer { readonly pinned: boolean; readonly order?: number; visible: boolean; + isBuiltin?: boolean; views?: { when?: string; }[]; } @@ -116,6 +118,7 @@ export class ActivitybarPart extends Part implements IActivityBarService { private readonly keyboardNavigationDisposables = this._register(new DisposableStore()); private readonly location = ViewContainerLocation.Sidebar; + private hasExtensionsRegistered: boolean = false; constructor( @IInstantiationService private readonly instantiationService: IInstantiationService, @@ -319,7 +322,22 @@ export class ActivitybarPart extends Part implements IActivityBarService { } private onDidRegisterExtensions(): void { - this.removeNotExistingComposites(); + this.hasExtensionsRegistered = true; + + // show/hide/remove composites + for (const { id } of this.cachedViewContainers) { + const viewContainer = this.getViewContainer(id); + if (viewContainer) { + this.showOrHideViewContainer(viewContainer); + } else { + if (this.viewDescriptorService.isViewContainerRemovedPermanently(id)) { + this.removeComposite(id); + } else { + this.hideComposite(id); + } + } + } + this.saveCachedViewContainers(); } @@ -331,7 +349,7 @@ export class ActivitybarPart extends Part implements IActivityBarService { this.compositeBar.addComposite(viewContainer); this.compositeBar.activateComposite(viewContainer.id); - if (viewContainer.hideIfEmpty) { + if (this.shouldBeHidden(viewContainer)) { const viewContainerModel = this.viewDescriptorService.getViewContainerModel(viewContainer); if (viewContainerModel.activeViewDescriptors.length === 0) { // Update the composite bar by hiding @@ -675,32 +693,27 @@ export class ActivitybarPart extends Part implements IActivityBarService { private onDidRegisterViewContainers(viewContainers: ReadonlyArray): void { for (const viewContainer of viewContainers) { + this.compositeBar.addComposite(viewContainer); + + // Pin it by default if it is new const cachedViewContainer = this.cachedViewContainers.filter(({ id }) => id === viewContainer.id)[0]; - const visibleViewContainer = this.viewsService.getVisibleViewContainer(this.location); - const isActive = visibleViewContainer?.id === viewContainer.id; - - if (isActive || !this.shouldBeHidden(viewContainer.id, cachedViewContainer)) { - this.compositeBar.addComposite(viewContainer); - - // Pin it by default if it is new - if (!cachedViewContainer) { - this.compositeBar.pin(viewContainer.id); - } - - if (isActive) { - this.compositeBar.activateComposite(viewContainer.id); - } + if (!cachedViewContainer) { + this.compositeBar.pin(viewContainer.id); + } + + // Active + const visibleViewContainer = this.viewsService.getVisibleViewContainer(this.location); + if (visibleViewContainer?.id === viewContainer.id) { + this.compositeBar.activateComposite(viewContainer.id); } - } - for (const viewContainer of viewContainers) { const viewContainerModel = this.viewDescriptorService.getViewContainerModel(viewContainer); this.updateActivity(viewContainer, viewContainerModel); - this.onDidChangeActiveViews(viewContainer, viewContainerModel); + this.showOrHideViewContainer(viewContainer); const disposables = new DisposableStore(); disposables.add(viewContainerModel.onDidChangeContainerInfo(() => this.updateActivity(viewContainer, viewContainerModel))); - disposables.add(viewContainerModel.onDidChangeActiveViewDescriptors(() => this.onDidChangeActiveViews(viewContainer, viewContainerModel))); + disposables.add(viewContainerModel.onDidChangeActiveViewDescriptors(() => this.showOrHideViewContainer(viewContainer))); this.viewContainerDisposables.set(viewContainer.id, disposables); } @@ -755,36 +768,43 @@ export class ActivitybarPart extends Part implements IActivityBarService { return { id, name, cssClass, iconUrl, keybindingId }; } - private onDidChangeActiveViews(viewContainer: ViewContainer, viewContainerModel: IViewContainerModel): void { - if (viewContainerModel.activeViewDescriptors.length) { - this.compositeBar.addComposite(viewContainer); - } else if (viewContainer.hideIfEmpty) { + private showOrHideViewContainer(viewContainer: ViewContainer): void { + if (this.shouldBeHidden(viewContainer)) { this.hideComposite(viewContainer.id); + } else { + this.compositeBar.addComposite(viewContainer); } } - private shouldBeHidden(viewContainerId: string, cachedViewContainer?: ICachedViewContainer): boolean { - const viewContainer = this.getViewContainer(viewContainerId); - if (!viewContainer || !viewContainer.hideIfEmpty) { - return false; - } + private shouldBeHidden(viewContainerOrId: string | ViewContainer, cachedViewContainer?: ICachedViewContainer): boolean { + const viewContainer = isString(viewContainerOrId) ? this.getViewContainer(viewContainerOrId) : viewContainerOrId; + const viewContainerId = isString(viewContainerOrId) ? viewContainerOrId : viewContainerOrId.id; - return cachedViewContainer?.views && cachedViewContainer.views.length - ? cachedViewContainer.views.every(({ when }) => !!when && !this.contextKeyService.contextMatchesRules(ContextKeyExpr.deserialize(when))) - : viewContainerId === TEST_VIEW_CONTAINER_ID /* Hide Test view container for the first time or it had no views registered before */; - } - - private removeNotExistingComposites(): void { - const viewContainers = this.getViewContainers(); - for (const { id } of this.cachedViewContainers) { - if (viewContainers.every(viewContainer => viewContainer.id !== id)) { - if (this.viewDescriptorService.isViewContainerRemovedPermanently(id)) { - this.removeComposite(id); - } else { - this.hideComposite(id); + if (viewContainer) { + if (viewContainer.hideIfEmpty) { + if (this.viewDescriptorService.getViewContainerModel(viewContainer).activeViewDescriptors.length > 0) { + return false; } + } else { + return false; } } + + // Check Cache + if (!this.hasExtensionsRegistered) { + cachedViewContainer = cachedViewContainer || this.cachedViewContainers.find(({ id }) => id === viewContainerId); + + // Show builtin ViewContainer if not registered yet + if (!viewContainer && cachedViewContainer?.isBuiltin) { + return false; + } + + if (cachedViewContainer?.views?.length) { + return cachedViewContainer.views.every(({ when }) => !!when && !this.contextKeyService.contextMatchesRules(ContextKeyExpr.deserialize(when))); + } + } + + return true; } private hideComposite(compositeId: string): void { @@ -876,7 +896,6 @@ export class ActivitybarPart extends Part implements IActivityBarService { private getViewContainer(id: string): ViewContainer | undefined { const viewContainer = this.viewDescriptorService.getViewContainerById(id); - return viewContainer && this.viewDescriptorService.getViewContainerLocation(viewContainer) === this.location ? viewContainer : undefined; } @@ -941,10 +960,11 @@ export class ActivitybarPart extends Part implements IActivityBarService { views, pinned: compositeItem.pinned, order: compositeItem.order, - visible: compositeItem.visible + visible: compositeItem.visible, + isBuiltin: !viewContainer.extensionId }); } else { - state.push({ id: compositeItem.id, pinned: compositeItem.pinned, order: compositeItem.order, visible: false }); + state.push({ id: compositeItem.id, pinned: compositeItem.pinned, order: compositeItem.order, visible: false, isBuiltin: false }); } } @@ -962,6 +982,7 @@ export class ActivitybarPart extends Part implements IActivityBarService { cachedViewContainer.icon = placeholderViewContainer.themeIcon ? placeholderViewContainer.themeIcon : placeholderViewContainer.iconUrl ? URI.revive(placeholderViewContainer.iconUrl) : undefined; cachedViewContainer.views = placeholderViewContainer.views; + cachedViewContainer.isBuiltin = placeholderViewContainer.isBuiltin; } } } @@ -977,11 +998,12 @@ export class ActivitybarPart extends Part implements IActivityBarService { order }))); - this.setPlaceholderViewContainers(cachedViewContainers.map(({ id, icon, name, views }) => ({ + this.setPlaceholderViewContainers(cachedViewContainers.map(({ id, icon, name, views, isBuiltin }) => ({ id, iconUrl: URI.isUri(icon) ? icon : undefined, themeIcon: ThemeIcon.isThemeIcon(icon) ? icon : undefined, name, + isBuiltin, views }))); } From 6525b42f479ae6f53ece62e013ea27ede2a6e107 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Thu, 14 Jan 2021 20:22:25 +0100 Subject: [PATCH 055/171] remove unused file --- build/npm/update-theme.js | 82 --------------------------------------- 1 file changed, 82 deletions(-) delete mode 100644 build/npm/update-theme.js diff --git a/build/npm/update-theme.js b/build/npm/update-theme.js deleted file mode 100644 index 7e5649a1cbc..00000000000 --- a/build/npm/update-theme.js +++ /dev/null @@ -1,82 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * 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 path = require('path'); -var fs = require('fs'); -var plist = require('fast-plist'); - -var mappings = { - "background": ["editor.background"], - "foreground": ["editor.foreground"], - "hoverHighlight": ["editor.hoverHighlightBackground"], - "linkForeground": ["editorLink.foreground"], - "selection": ["editor.selectionBackground"], - "inactiveSelection": ["editor.inactiveSelectionBackground"], - "selectionHighlightColor": ["editor.selectionHighlightBackground"], - "wordHighlight": ["editor.wordHighlightBackground"], - "wordHighlightStrong": ["editor.wordHighlightStrongBackground"], - "findMatchHighlight": ["editor.findMatchHighlightBackground", "peekViewResult.matchHighlightBackground"], - "currentFindMatchHighlight": ["editor.findMatchBackground"], - "findRangeHighlight": ["editor.findRangeHighlightBackground"], - "referenceHighlight": ["peekViewEditor.matchHighlightBackground"], - "lineHighlight": ["editor.lineHighlightBackground"], - "rangeHighlight": ["editor.rangeHighlightBackground"], - "caret": ["editorCursor.foreground"], - "invisibles": ["editorWhitespace.foreground"], - "guide": ["editorIndentGuide.background"], - "ansiBlack": ["terminal.ansiBlack"], "ansiRed": ["terminal.ansiRed"], "ansiGreen": ["terminal.ansiGreen"], "ansiYellow": ["terminal.ansiYellow"], - "ansiBlue": ["terminal.ansiBlue"], "ansiMagenta": ["terminal.ansiMagenta"], "ansiCyan": ["terminal.ansiCyan"], "ansiWhite": ["terminal.ansiWhite"], - "ansiBrightBlack": ["terminal.ansiBrightBlack"], "ansiBrightRed": ["terminal.ansiBrightRed"], "ansiBrightGreen": ["terminal.ansiBrightGreen"], - "ansiBrightYellow": ["terminal.ansiBrightYellow"], "ansiBrightBlue": ["terminal.ansiBrightBlue"], "ansiBrightMagenta": ["terminal.ansiBrightMagenta"], - "ansiBrightCyan": ["terminal.ansiBrightCyan"], "ansiBrightWhite": ["terminal.ansiBrightWhite"] -}; - -exports.update = function (srcName, destName) { - try { - console.log('reading ', srcName); - let result = {}; - let plistContent = fs.readFileSync(srcName).toString(); - let theme = plist.parse(plistContent); - let settings = theme.settings; - if (Array.isArray(settings)) { - let colorMap = {}; - for (let entry of settings) { - let scope = entry.scope; - if (scope) { - let parts = scope.split(',').map(p => p.trim()); - if (parts.length > 1) { - entry.scope = parts; - } - } else { - var entrySettings = entry.settings; - for (let entry in entrySettings) { - let mapping = mappings[entry]; - if (mapping) { - for (let newKey of mapping) { - colorMap[newKey] = entrySettings[entry]; - } - if (entry !== 'foreground' && entry !== 'background') { - delete entrySettings[entry]; - } - } - } - - } - } - result.name = theme.name; - result.tokenColors = settings; - result.colors = colorMap; - } - fs.writeFileSync(destName, JSON.stringify(result, null, '\t')); - } catch (e) { - console.log(e); - } -}; - -if (path.basename(process.argv[1]) === 'update-theme.js') { - exports.update(process.argv[2], process.argv[3]); -} From c8a6ddba9d0ae94cc531563a0bb02d28e15f841d Mon Sep 17 00:00:00 2001 From: Wenlu Wang Date: Fri, 15 Jan 2021 03:25:11 +0800 Subject: [PATCH 056/171] Enable forceConsistentCasingInFileNames flag (#114334) --- extensions/shared.tsconfig.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/extensions/shared.tsconfig.json b/extensions/shared.tsconfig.json index a84d7a1cc03..5559704e304 100644 --- a/extensions/shared.tsconfig.json +++ b/extensions/shared.tsconfig.json @@ -10,6 +10,7 @@ "noImplicitAny": true, "noImplicitReturns": true, "noUnusedLocals": true, - "noUnusedParameters": true + "noUnusedParameters": true, + "forceConsistentCasingInFileNames": true } } From ff7aabe3fca522e7b820d404cd8a0438e0ef4814 Mon Sep 17 00:00:00 2001 From: meganrogge Date: Thu, 14 Jan 2021 12:06:51 -0800 Subject: [PATCH 057/171] fix #114215 --- package.json | 2 +- remote/package.json | 2 +- remote/yarn.lock | 8 ++++---- src/vs/workbench/contrib/terminal/node/terminalProcess.ts | 6 ++---- yarn.lock | 8 ++++---- 5 files changed, 12 insertions(+), 14 deletions(-) diff --git a/package.json b/package.json index a02dd60d25d..d00bf559bd8 100644 --- a/package.json +++ b/package.json @@ -70,7 +70,7 @@ "native-is-elevated": "0.4.1", "native-keymap": "2.2.1", "native-watchdog": "1.3.0", - "node-pty": "0.10.0-beta18", + "node-pty": "0.10.0-beta19", "spdlog": "^0.11.1", "sudo-prompt": "9.1.1", "tas-client-umd": "0.1.2", diff --git a/remote/package.json b/remote/package.json index 3989ef17bdb..83df0a7772d 100644 --- a/remote/package.json +++ b/remote/package.json @@ -13,7 +13,7 @@ "jschardet": "2.2.1", "minimist": "^1.2.5", "native-watchdog": "1.3.0", - "node-pty": "0.10.0-beta18", + "node-pty": "0.10.0-beta19", "spdlog": "^0.11.1", "tas-client-umd": "0.1.2", "vscode-nsfw": "1.2.9", diff --git a/remote/yarn.lock b/remote/yarn.lock index 80632fbfb93..68fd8d4bb6b 100644 --- a/remote/yarn.lock +++ b/remote/yarn.lock @@ -304,10 +304,10 @@ node-addon-api@^3.0.2: resolved "https://registry.yarnpkg.com/node-addon-api/-/node-addon-api-3.0.2.tgz#04bc7b83fd845ba785bb6eae25bc857e1ef75681" integrity sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg== -node-pty@0.10.0-beta18: - version "0.10.0-beta18" - resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.0-beta18.tgz#7ed2d3f4a06b2b23fe2abdf5b41655e9dffc25d5" - integrity sha512-vpK4yB3A3VzgkvdOWegL7GcPapt45jfA4b3ejUe8k4RmqdWBRvFJngew8T3qAxmLhTkfo93psaN6izTlfkc6FA== +node-pty@0.10.0-beta19: + version "0.10.0-beta19" + resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.0-beta19.tgz#b7cbfba53f7b2a816efe8c9302dd083cc5874458" + integrity sha512-4UIOGMvpofUbe+ZniBUtY8zc/psMURSzbMonQgIhK7JlMQsUwcbkDIrKzStVLJX0FkeZpUNlsVtK7qqzHvrUZA== dependencies: nan "^2.14.0" diff --git a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts index 4d7816c1ea9..27a9548f521 100644 --- a/src/vs/workbench/contrib/terminal/node/terminalProcess.ts +++ b/src/vs/workbench/contrib/terminal/node/terminalProcess.ts @@ -172,8 +172,7 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess if (!this._isPtyPaused && this._unacknowledgedCharCount > FlowControlConstants.HighWatermarkChars) { this._logService.trace(`Flow control: Pause (${this._unacknowledgedCharCount} > ${FlowControlConstants.HighWatermarkChars})`); this._isPtyPaused = true; - // TODO: Expose as public API in node-pty - (ptyProcess as any).pause(); + ptyProcess.pause(); } } this._onProcessData.fire(data); @@ -347,8 +346,7 @@ export class TerminalProcess extends Disposable implements ITerminalChildProcess this._logService.trace(`Flow control: Ack ${charCount} chars (unacknowledged: ${this._unacknowledgedCharCount})`); if (this._isPtyPaused && this._unacknowledgedCharCount < FlowControlConstants.LowWatermarkChars) { this._logService.trace(`Flow control: Resume (${this._unacknowledgedCharCount} < ${FlowControlConstants.LowWatermarkChars})`); - // TODO: Expose as public API in node-pty - (this._ptyProcess as any).resume(); + this._ptyProcess?.resume(); this._isPtyPaused = false; } } diff --git a/yarn.lock b/yarn.lock index aa6a4ba87cc..c6f15827b5e 100644 --- a/yarn.lock +++ b/yarn.lock @@ -7057,10 +7057,10 @@ node-pre-gyp@^0.10.0: semver "^5.3.0" tar "^4" -node-pty@0.10.0-beta18: - version "0.10.0-beta18" - resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.0-beta18.tgz#7ed2d3f4a06b2b23fe2abdf5b41655e9dffc25d5" - integrity sha512-vpK4yB3A3VzgkvdOWegL7GcPapt45jfA4b3ejUe8k4RmqdWBRvFJngew8T3qAxmLhTkfo93psaN6izTlfkc6FA== +node-pty@0.10.0-beta19: + version "0.10.0-beta19" + resolved "https://registry.yarnpkg.com/node-pty/-/node-pty-0.10.0-beta19.tgz#b7cbfba53f7b2a816efe8c9302dd083cc5874458" + integrity sha512-4UIOGMvpofUbe+ZniBUtY8zc/psMURSzbMonQgIhK7JlMQsUwcbkDIrKzStVLJX0FkeZpUNlsVtK7qqzHvrUZA== dependencies: nan "^2.14.0" From 8dfc81fedc15397440cf8a20276c7e89011fbc90 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 21:16:08 +0100 Subject: [PATCH 058/171] Small tweaks --- .../remote/common/remoteAgentConnection.ts | 57 +++++++++++-------- 1 file changed, 34 insertions(+), 23 deletions(-) diff --git a/src/vs/platform/remote/common/remoteAgentConnection.ts b/src/vs/platform/remote/common/remoteAgentConnection.ts index fd7aee02eb6..20d5854b4b1 100644 --- a/src/vs/platform/remote/common/remoteAgentConnection.ts +++ b/src/vs/platform/remote/common/remoteAgentConnection.ts @@ -118,32 +118,43 @@ function waitWithTimeout(promise: Promise, timeout: number): Promise { }); } +function createSocket(socketFactory: ISocketFactory, host: string, port: number, query: string): Promise { + return new Promise((resolve, reject) => { + socketFactory.connect(host, port, query, (err: any, socket: ISocket | undefined) => { + if (err || !socket) { + return reject(err); + } + resolve(socket); + }); + }); +} + async function connectToRemoteExtensionHostAgent(options: ISimpleConnectionOptions, connectionType: ConnectionType, args: any | undefined): Promise<{ protocol: PersistentProtocol; ownsProtocol: boolean; }> { const logPrefix = connectLogPrefix(options, connectionType); - const { protocol, ownsProtocol } = await new Promise<{ protocol: PersistentProtocol; ownsProtocol: boolean; }>((c, e) => { - options.logService.trace(`${logPrefix} 1/6. invoking socketFactory.connect().`); - options.socketFactory.connect( - options.host, - options.port, - `reconnectionToken=${options.reconnectionToken}&reconnection=${options.reconnectionProtocol ? 'true' : 'false'}`, - (err: any, socket: ISocket | undefined) => { - if (err || !socket) { - options.logService.error(`${logPrefix} socketFactory.connect() failed. Error:`); - options.logService.error(err); - e(err); - return; - } - options.logService.trace(`${logPrefix} 2/6. socketFactory.connect() was successful.`); - if (options.reconnectionProtocol) { - options.reconnectionProtocol.beginAcceptReconnection(socket, null); - c({ protocol: options.reconnectionProtocol, ownsProtocol: false }); - } else { - c({ protocol: new PersistentProtocol(socket, null), ownsProtocol: true }); - } - } - ); - }); + options.logService.trace(`${logPrefix} 1/6. invoking socketFactory.connect().`); + + let socket: ISocket; + try { + socket = await createSocket(options.socketFactory, options.host, options.port, `reconnectionToken=${options.reconnectionToken}&reconnection=${options.reconnectionProtocol ? 'true' : 'false'}`); + } catch (error) { + options.logService.error(`${logPrefix} socketFactory.connect() failed. Error:`); + options.logService.error(error); + throw error; + } + + options.logService.trace(`${logPrefix} 2/6. socketFactory.connect() was successful.`); + + let protocol: PersistentProtocol; + let ownsProtocol: boolean; + if (options.reconnectionProtocol) { + options.reconnectionProtocol.beginAcceptReconnection(socket, null); + protocol = options.reconnectionProtocol; + ownsProtocol = false; + } else { + protocol = new PersistentProtocol(socket, null); + ownsProtocol = true; + } options.logService.trace(`${logPrefix} 3/6. sending AuthRequest control message.`); const authRequest: AuthRequest = { From cbb94cfb607b61f7cc43676d0c0abfb52b0bcbf3 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 21:55:35 +0100 Subject: [PATCH 059/171] Revert "fixes #114203" This reverts commit d03490f3532195449d68bb97e31d5a4741ad6630. --- src/vs/workbench/services/label/common/labelService.ts | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/services/label/common/labelService.ts b/src/vs/workbench/services/label/common/labelService.ts index e4114d964aa..74dc864bf51 100644 --- a/src/vs/workbench/services/label/common/labelService.ts +++ b/src/vs/workbench/services/label/common/labelService.ts @@ -21,7 +21,6 @@ import { match } from 'vs/base/common/glob'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; -import { hasDriveLetter } from 'vs/base/common/extpath'; const resourceLabelFormattersExtPoint = ExtensionsRegistry.registerExtensionPoint({ extensionPoint: 'resourceLabelFormatters', @@ -74,6 +73,10 @@ const resourceLabelFormattersExtPoint = ExtensionsRegistry.registerExtensionPoin const sepRegexp = /\//g; const labelMatchingRegexp = /\$\{(scheme|authority|path|(query)\.(.+?))\}/g; +function hasDriveLetter(path: string): boolean { + return !!(path && path[2] === ':'); +} + class ResourceLabelFormattersHandler implements IWorkbenchContribution { private formattersDisposables = new Map(); From a4b13661009a293855e5fbdd2ae0772be58260b0 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 22:06:34 +0100 Subject: [PATCH 060/171] Add performance marks to `IRemoteAgentEnvironmentDTO` --- .../services/remote/common/remoteAgentEnvironmentChannel.ts | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts b/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts index 710c7589795..ed531a4e017 100644 --- a/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts +++ b/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as platform from 'vs/base/common/platform'; +import * as performance from 'vs/base/common/performance'; import { URI, UriComponents } from 'vs/base/common/uri'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { IExtensionDescription, ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; @@ -41,6 +42,7 @@ export interface IRemoteAgentEnvironmentDTO { workspaceStorageHome: UriComponents; userHome: UriComponents; os: platform.OperatingSystem; + marks: performance.PerformanceMark[] } export class RemoteExtensionEnvironmentChannelClient { From 43d111c0a481de0503e7046a71a2ef2e7c11b4d3 Mon Sep 17 00:00:00 2001 From: Harald Kirschner Date: Thu, 14 Jan 2021 13:07:14 -0800 Subject: [PATCH 061/171] Getting started content (#114305) * Codespaces, setup and beginner journeys for getting started. * Added missing alt texts and shortened some texts. * Fixing wording for terminal in Codespaces. * Fixed action for opening settings * Replacing unoptimized PNGs with optimized jpgs (70% compression) * Add some minor css tweaks Co-authored-by: Jackson Kearl --- .../gettingStarted/browser/gettingStarted.css | 32 ++- .../common/gettingStartedContent.ts | 243 +++++++++++------- .../common/media/ColorTheme.jpg | Bin 54203 -> 0 bytes .../common/media/CommandPalette.jpg | Bin 25364 -> 0 bytes .../common/media/Extensions.jpg | Bin 85378 -> 0 bytes .../gettingStarted/common/media/Languages.jpg | Bin 89946 -> 0 bytes .../common/media/OpenFolder.jpg | Bin 26158 -> 0 bytes .../common/media/colorTheme.jpg | Bin 0 -> 64264 bytes .../common/media/commandPalette.jpg | Bin 0 -> 57268 bytes .../common/media/extensions.jpg | Bin 0 -> 134669 bytes .../common/media/forwardPorts.jpg | Bin 0 -> 63227 bytes .../gettingStarted/common/media/github.jpg | Bin 0 -> 133193 bytes .../common/media/languageExtensions.jpg | Bin 0 -> 124357 bytes .../common/media/openFolder.jpg | Bin 0 -> 33397 bytes .../gettingStarted/common/media/openVSC.jpg | Bin 0 -> 32044 bytes .../common/media/pullRequests.jpg | Bin 0 -> 78029 bytes .../common/media/remoteTerminal.jpg | Bin 0 -> 82822 bytes .../common/media/runProject.jpg | Bin 0 -> 77567 bytes .../gettingStarted/common/media/settings.jpg | Bin 0 -> 60499 bytes .../gettingStarted/common/media/terminal.jpg | Bin 0 -> 46075 bytes 20 files changed, 162 insertions(+), 113 deletions(-) delete mode 100644 src/vs/workbench/services/gettingStarted/common/media/ColorTheme.jpg delete mode 100644 src/vs/workbench/services/gettingStarted/common/media/CommandPalette.jpg delete mode 100644 src/vs/workbench/services/gettingStarted/common/media/Extensions.jpg delete mode 100644 src/vs/workbench/services/gettingStarted/common/media/Languages.jpg delete mode 100644 src/vs/workbench/services/gettingStarted/common/media/OpenFolder.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/colorTheme.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/commandPalette.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/extensions.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/forwardPorts.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/github.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/languageExtensions.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/openFolder.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/openVSC.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/pullRequests.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/remoteTerminal.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/runProject.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/settings.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/terminal.jpg diff --git a/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.css b/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.css index 4b067bcf281..c3bb1a2e122 100644 --- a/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.css +++ b/src/vs/workbench/contrib/welcome/gettingStarted/browser/gettingStarted.css @@ -39,6 +39,7 @@ .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.categories .category-title { margin-bottom: 4px; + font-weight: 600; } .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.categories .category-description-container { @@ -77,6 +78,7 @@ .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide .getting-started-category { width: 330px; min-height: 80px; + font-size: 13px; margin: 12px; text-align: left; display: flex; @@ -134,11 +136,13 @@ width: 100%; overflow: hidden; transition: max-height .1s linear; - max-height: 150px; /* taller than we need, to allow for animating */ + max-height: 150px; } .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task:not(.expanded) { max-height: 54px; + background: none; + opacity: 0.8; } .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail #getting-started-detail-columns #getting-started-detail-left > div { @@ -149,17 +153,14 @@ .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task:not(.expanded) .actions, .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task:not(.expanded) button, .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task:not(.expanded) a { - visibility: hidden; + display: none; } -.monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task .task-title { - font-size: 14pt; -} .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task .task-description { - margin-top: 4px; - font-size: 13px; + padding-top: 8px; + font-size: 12px; } .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task .actions { @@ -179,13 +180,14 @@ .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task .codicon { margin-right: 8px; - font-size: 20px; + font-size: 13px; } .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail .getting-started-task-action { padding: 6px 12px; - font-size: 11pt; + font-size: 13px; min-width: 100px; + margin-bottom: 0; } .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail #getting-started-detail-left { @@ -212,7 +214,7 @@ .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide.detail #getting-started-detail-right { display: flex; - align-items: center; + align-items: flex-start; justify-content: center; width: 66%; min-height: 300px; @@ -227,11 +229,6 @@ text-align: left; padding: 16px; } - -.monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer button { - margin-bottom: 12px; -} - .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer button:hover { cursor: pointer; } @@ -275,12 +272,13 @@ .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide h2 { font-weight: normal; + line-height: 26px; margin: 0 0 4px 0; } .monaco-workbench .part.editor > .content .walkThroughContent .gettingStartedContainer .gettingStartedSlide h3 { - font-size: 18px; - font-weight: bold; + font-size: 13px; + font-weight: 700; margin: 0; } diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index b2504c4722a..eeda3cdaa11 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -9,12 +9,9 @@ import { ThemeIcon } from 'vs/platform/theme/common/themeService'; import { registerIcon } from 'vs/platform/theme/common/iconRegistry'; +const setupIcon = registerIcon('getting-started-setup', Codicon.heart, localize('getting-started-setup-icon', "Icon used for the setup category of getting started")); const beginnerIcon = registerIcon('getting-started-beginner', Codicon.lightbulb, localize('getting-started-beginner-icon', "Icon used for the beginner category of getting started")); -const intermediateIcon = registerIcon('getting-started-intermediate', Codicon.heart, localize('getting-started-intermediate-icon', "Icon used for the intermediate category of getting started")); -const advancedIcon = registerIcon('getting-started-advanced', Codicon.tools, localize('getting-started-advanced-icon', "Icon used for the advanced category of getting started")); - -const openFolderIcon = registerIcon('getting-started-open-folder', Codicon.folderOpened, localize('getting-started-open-folder-icon', "Icon used for the open folder entry in getting started")); -const interactivePlaygroundIcon = registerIcon('getting-started-interactive-playground', Codicon.library, localize('getting-started-interactive-playground-icon', "Icon used for the interactive playground entry of getting started")); +const codespacesIcon = registerIcon('getting-started-codespaces', Codicon.github, localize('getting-started-codespaces-icon', "Icon used for the codespaces category of getting started")); type GettingStartedItem = { @@ -42,141 +39,195 @@ type GettingStartedContent = GettingStartedCategory[]; export const content: GettingStartedContent = [ { - id: 'Beginner', - title: localize('gettingStarted.beginner.title', "Get Started"), - icon: beginnerIcon, - description: localize('gettingStarted.beginner.description', "Get to know your new editor"), + id: 'Codespaces', + title: localize('gettingStarted.codespaces.title', "Primer on GitHub Codespaces"), + icon: codespacesIcon, + when: 'remoteConnectionState == connected', + description: localize('gettingStarted.codespaces.description', "Get up and running with your instant code environment."), + content: { + type: 'items', + items: [ + { + id: 'runProjectTask', + title: localize('gettingStarted.runProject.title', "Build & run your project"), + description: localize('gettingStarted.runProject.description', "Build, run & debug your application in your codespace instead of locally."), + button: { + title: localize('gettingStarted.runProject.button', "Run Project"), + command: 'workbench.action.debug.start' + }, + doneOn: { commandExecuted: 'workbench.action.debug.start' }, + media: { type: 'image', altText: 'Node.js project running debug mode and paused.', path: 'runProject.jpg' }, + }, + { + id: 'forwardPortsTask', + title: localize('gettingStarted.forwardPorts.title', "Forward Ports to the Web"), + description: localize('gettingStarted.forwardPorts.description', "Test and debug your application in your browser by forwarding TCP ports running within your codespace."), + button: { + title: localize('gettingStarted.forwardPorts.button', "Open Ports"), + command: '~remote.forwardedPorts.focus' + }, + doneOn: { commandExecuted: '~remote.forwardedPorts.focus' }, + media: { type: 'image', altText: 'Ports panel.', path: 'forwardPorts.jpg' }, + }, + { + id: 'pullRequests', + title: localize('gettingStarted.pullRequests.title', "Pull Requests at Your Fingertips"), + description: localize('gettingStarted.pullRequests.description', "View Pull Requests. Check out branches. Add comments. Merge and delete branches from the Codespace."), + button: { + title: localize('gettingStarted.pullRequests.button', "Open GitHub Pull Request"), + command: 'workbench.view.extension.github-pull-requests' + }, + doneOn: { commandExecuted: 'workbench.view.extension.github-pull-requests' }, + media: { type: 'image', altText: 'Preview for reviewing a pull request.', path: 'pullRequests.jpg' }, + }, + { + id: 'remoteTerminal', + title: localize('gettingStarted.remoteTerminal.title', "Run Tasks in the Integrated Terminal"), + description: localize('gettingStarted.remoteTerminal.description', "Access your full development environment in the cloud and perform quick command-line tasks."), + button: { + title: localize('gettingStarted.remoteTerminal.button', "Focus Terminal"), + command: 'terminal.focus' + }, + doneOn: { commandExecuted: 'terminal.focus' }, + media: { type: 'image', altText: 'Remote terminal showing npm commands.', path: 'remoteTerminal.jpg' }, + }, + { + id: 'openVSC', + title: localize('gettingStarted.openVSC.title', "Open in Visual Studio Code"), + description: localize('gettingStarted.openVSC.description', "You can develop in your codespace directly in VS Code Code by connecting the GitHub Codespaces extension with your account on GitHub."), + button: { + title: localize('gettingStarted.openVSC.button', "Open in VS Code"), + command: 'github.codespaces.openInStable' + }, + doneOn: { commandExecuted: 'github.codespaces.openInStable' }, + media: { type: 'image', altText: 'Preview of the Open in VS Code command.', path: 'openVSC.jpg' }, + } + ] + } + }, + + { + id: 'Setup', + title: localize('gettingStarted.setup.title', "Quick Setup"), + description: localize('gettingStarted.setup.description', "Extend and customize VS Code to fit your needs."), + icon: setupIcon, + when: 'emptyWorkspaceSupport', content: { type: 'items', items: [ { id: 'pickColorTheme', - description: localize('pickColorTask.description', "Modify the colors in the user interface to suit your preferences and work environment."), - title: localize('pickColorTask.title', "Color Theme"), - button: { title: localize('pickColorTask.button', "Find a Theme"), command: 'workbench.action.selectTheme' }, + title: localize('gettingStarted.pickColor.title', "Customize the Look With Themes"), + description: localize('gettingStarted.pickColor.description', "Adapt VS Code to your taste with themes, customizing interface and language syntax colors."), + button: { title: localize('gettingStarted.pickColor.button', "Browse Color Themes"), command: 'workbench.action.selectTheme' }, doneOn: { eventFired: 'themeSelected' }, - media: { type: 'image', altText: 'ColorTheme', path: 'ColorTheme.jpg', } + media: { type: 'image', altText: 'Color theme preview for dark and light theme.', path: 'colorTheme.jpg', } }, - - { - id: 'findKeybindingsExtensions', - description: localize('findKeybindingsTask.description', "Find keyboard shortcuts for Vim, Sublime, Atom and others."), - title: localize('findKeybindingsTask.title', "Configure Keybindings"), - button: { - title: localize('findKeybindingsTask.button', "Search for Keymaps"), - command: 'workbench.extensions.action.showRecommendedKeymapExtensions' - }, - doneOn: { commandExecuted: 'workbench.extensions.action.showRecommendedKeymapExtensions' }, - media: { type: 'image', altText: 'Extensions', path: 'Extensions.jpg', } - }, - { id: 'findLanguageExtensions', - description: localize('findLanguageExtsTask.description', "Get support for your languages like JavaScript, Python, Java, Azure, Docker, and more."), - title: localize('findLanguageExtsTask.title', "Languages & Tools"), + title: localize('gettingStarted.findLanguageExts.title', "Add More Language & Tools Support"), + description: localize('gettingStarted.findLanguageExts.description', "Install extensions with one click to support additional languages like Python, Java, Azure, Docker, and more."), button: { - title: localize('findLanguageExtsTask.button', "Install Language Support"), + title: localize('gettingStarted.findLanguageExts.button', "Browse Language Extensions"), command: 'workbench.extensions.action.showLanguageExtensions', }, doneOn: { commandExecuted: 'workbench.extensions.action.showLanguageExtensions' }, - media: { type: 'image', altText: 'Languages', path: 'Languages.jpg', } + media: { type: 'image', altText: 'Language extensions', path: 'languageExtensions.jpg', } + }, + { + id: 'githubLogin', + title: localize('gettingStarted.githubLogin.title', "Use GitHub in VS Code"), + description: localize('gettingStarted.githubLogin.description', "Integrated GitHub makes it easier for you to manage projects from inside your code editor, including authentication, publishing repos, and viewing your repo timeline."), + when: '!githubBrowser:hasProviders', + button: { + title: localize('gettingStarted.githubLogin.button', "Sign in to GitHub"), + command: 'githubsignIn', + }, + doneOn: { commandExecuted: 'workbench.extensions.action.showLanguageExtensions' }, + media: { type: 'image', altText: 'Commiting a change via Git in VS Code.', path: 'github.jpg', } }, - { id: 'pickAFolderTask-Mac', - description: localize('gettingStartedOpenFolder.description', "Open a project folder to get started!"), - title: localize('gettingStartedOpenFolder.title', "Open Folder"), - when: 'isMac', + title: localize('gettingStarted.setup.OpenFolder.title', "Open Your Project"), + description: localize('gettingStarted.setup.OpenFolder.description', "Open a project folder to get started!"), + when: '!emptyWorkspaceSupport && isMac', button: { - title: localize('gettingStartedOpenFolder.button', "Pick a Folder"), + title: localize('gettingStarted.setup.OpenFolder.button', "Pick a Folder"), command: 'workbench.action.files.openFileFolder' }, doneOn: { commandExecuted: 'workbench.action.files.openFileFolder' }, - media: { type: 'image', altText: 'OpenFolder', path: 'OpenFolder.jpg' } + media: { type: 'image', altText: 'Explorer view showing buttons for opening folder and cloning repository.', path: 'openFolder.jpg' } }, - { id: 'pickAFolderTask-Other', - description: localize('gettingStartedOpenFolder.description', "Open a project folder to get started!"), - title: localize('gettingStartedOpenFolder.title', "Open Folder"), - when: '!isMac', + title: localize('gettingStarted.setup.OpenFolder.title', "Open Your Project"), + description: localize('gettingStarted.setup.OpenFolder.description', "Open a project folder to get started!"), + when: '!emptyWorkspaceSupport && !isMac', button: { - title: localize('gettingStartedOpenFolder.button', "Pick a Folder"), + title: localize('gettingStarted.setup.OpenFolder.button', "Pick a Folder"), command: 'workbench.action.files.openFolder' }, doneOn: { commandExecuted: 'workbench.action.files.openFolder' }, - media: { type: 'image', altText: 'OpenFolder', path: 'OpenFolder.jpg' } + media: { type: 'image', altText: 'Explorer view showing buttons for opening folder and cloning repository.', path: 'openFolder.jpg' } } ] } }, { - id: 'Intermediate', - title: localize('gettingStarted.intermediate.title', "Essentials"), - icon: intermediateIcon, - description: localize('gettingStarted.intermediate.description', "Must know features you'll love"), + id: 'Beginner', + title: localize('gettingStarted.beginner.title', "Learn the Fundamentals"), + icon: beginnerIcon, + description: localize('gettingStarted.beginner.description', "Get up and running with must-have shortcuts & features."), content: { type: 'items', items: [ { id: 'commandPaletteTask', - description: localize('commandPaletteTask.description', "The easiest way to find everything VS Code can do. If you\'re ever looking for a feature, check here first!"), - title: localize('commandPaletteTask.title', "Command Palette"), + title: localize('gettingStarted.commandPalette.title', "Find and Run Commands"), + description: localize('gettingStarted.commandPalette.description', "The easiest way to find everything VS Code can do. If you\'re ever looking for a feature or a shortcut, check here first!"), button: { - title: localize('commandPaletteTask.button', "View All Commands"), + title: localize('gettingStarted.commandPalette.button', "Open Command Palette"), command: 'workbench.action.showCommands' }, doneOn: { commandExecuted: 'workbench.action.showCommands' }, - media: { type: 'image', altText: 'gif of a custom tree hover', path: 'CommandPalette.jpg' }, + media: { type: 'image', altText: 'Command Palette overlay for searching and executing commands.', path: 'commandPalette.jpg' }, + }, + { + id: 'terminal', + title: localize('gettingStarted.terminal.title', "Run Command-Line Tasks"), + description: localize('gettingStarted.terminal.description', "Quickly run shell commands and monitor build output, right next to your code."), + button: { + title: localize('gettingStarted.terminal.button', "Open Terminal"), + command: 'workbench.action.terminal.toggleTerminal' + }, + doneOn: { commandExecuted: 'workbench.action.terminal.toggleTerminal' }, + media: { type: 'image', altText: 'Integrated terminal running a few npm commands', path: 'terminal.jpg' }, + }, + { + id: 'extensions', + title: localize('gettingStarted.extensions.title', "Supercharge VS Code With Extensions"), + description: localize('gettingStarted.extensions.description', "Extensions let you add languages, debuggers, and new features to support your development workflow."), + button: { + title: localize('gettingStarted.extensions.button', "Browse Recommended Extensions"), + command: 'workbench.extensions.action.showRecommendedExtensions' + }, + doneOn: { commandExecuted: 'workbench.extensions.action.showRecommendedExtensions' }, + media: { type: 'image', altText: 'VS Code extension marketplace with featured language extensions', path: 'extensions.jpg' }, + }, + { + id: 'settings', + title: localize('gettingStarted.settings.title', "Everything is a Setting"), + description: localize('gettingStarted.settings.description', "Optimize every part of VS Code's look & feel to your liking. Enable Settings Sync to use your personal tweaks across machines."), + button: { + title: localize('gettingStarted.settings.button', "Tweak Some Settings"), + command: 'workbench.action.openSettings' + }, + doneOn: { commandExecuted: 'workbench.action.openSettings' }, + media: { type: 'image', altText: 'VS Code Settings', path: 'settings.jpg' }, } ] } - }, - - { - id: 'Advanced', - title: localize('gettingStarted.advanced.title', "Tips & Tricks"), - icon: advancedIcon, - description: localize('gettingStarted.advanced.description', "Favorites from VS Code experts"), - content: { - type: 'items', - items: [] - } - }, - - { - id: 'OpenFolder-Mac', - title: localize('gettingStarted.openFolder.title', "Open Folder"), - icon: openFolderIcon, - when: 'isMac', - description: localize('gettingStarted.openFolder.description', "Open a project and start working"), - content: { - type: 'command', - command: 'workbench.action.files.openFileFolder' - } - }, - - { - id: 'OpenFolder-Other', - title: localize('gettingStarted.openFolder.title', "Open Folder"), - icon: openFolderIcon, - description: localize('gettingStarted.openFolder.description', "Open a project and start working"), - when: '!isMac', - content: { - type: 'command', - command: 'workbench.action.files.openFolder' - } - }, - - { - id: 'InteractivePlayground', - title: localize('gettingStarted.playground.title', "Interactive Playground"), - icon: interactivePlaygroundIcon, - description: localize('gettingStarted.interactivePlayground.description', "Learn essential editor features"), - content: { - type: 'command', - command: 'workbench.action.showInteractivePlayground' - } } + ]; diff --git a/src/vs/workbench/services/gettingStarted/common/media/ColorTheme.jpg b/src/vs/workbench/services/gettingStarted/common/media/ColorTheme.jpg deleted file mode 100644 index 3789e84026348d6e8b082de8963fad7aaf93203b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 54203 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 diff --git a/src/vs/workbench/services/gettingStarted/common/media/CommandPalette.jpg b/src/vs/workbench/services/gettingStarted/common/media/CommandPalette.jpg deleted file mode 100644 index 986e2202fba85c36670702b0f4f137de37844693..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 25364 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 OtkXa7ojpMG|4jh6{kbRr diff --git a/src/vs/workbench/services/gettingStarted/common/media/Extensions.jpg b/src/vs/workbench/services/gettingStarted/common/media/Extensions.jpg deleted file mode 100644 index 5a8905c6d7b8f9cec1b7430b3a729bec83c53ce1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 85378 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�z*#D46aNy8KCKm=?D` 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ǯ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

+ZKoKR%wd^wjY209=UI^o{;4*^)Z|_ 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 RFU|!I^?IvML-PNw{Wk*!Nk{+y diff --git a/src/vs/workbench/services/gettingStarted/common/media/Languages.jpg b/src/vs/workbench/services/gettingStarted/common/media/Languages.jpg deleted file mode 100644 index fbdd9ef21bc9c86757f5ada94545648f75a62e24..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 89946 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 O{)}6^A)DF$|4jgNKUZA< diff --git a/src/vs/workbench/services/gettingStarted/common/media/OpenFolder.jpg b/src/vs/workbench/services/gettingStarted/common/media/OpenFolder.jpg deleted file mode 100644 index fdd671ca770f5b1d8c169b34b94e6d33de4a65bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 26158 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 H(tP|+-<6O> diff --git a/src/vs/workbench/services/gettingStarted/common/media/colorTheme.jpg b/src/vs/workbench/services/gettingStarted/common/media/colorTheme.jpg new file mode 100644 index 0000000000000000000000000000000000000000..157286bf6f10f3bd7106477b3958148df8cb68fc GIT binary patch literal 64264 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ê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 RQtDWwK?d=k;qcf0HvwzfVMYJ| literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/commandPalette.jpg b/src/vs/workbench/services/gettingStarted/common/media/commandPalette.jpg new file mode 100644 index 0000000000000000000000000000000000000000..58057d945c6747a7a0b9d0fe746d344929ed7ae2 GIT binary patch literal 57268 zcmeFY1yogE^gnnJ#h^q&8YD$Zx?4b6LF$nbkM2%U1f;tgq?<>#N_RdQlunUun1_nu zSAR2W=D*g=S~GJm>)mrc`?L4SyZ5>0Ud~6(KLdBgMZ`n^I5+@+gPp+nIPey@^Zh_X zLPA8ni*gqg3j-Y;1B(P37j}{`5t9?c{+MXlXsBq|XrJ@5v-3Y!ml2myx6swK2z(b< zU40DqziQz8BY<}6dLaToJRAvd4Gj(+4eq=Vz=Kur8vI37e;x4G;jZ04xOqMX-1>ok z(?l}zyAnrnliL zdYOjjUU~^5_|5y_=7B1cF5#tQY zETN=QYPqWoftmnZcJJyIK>(j(e4@I7F4V&&F@%R4Wg=V>JNq@+mU8C!dCP?0I7s>HJhHq-YB%K%jL45OPFw);M?`mTX~d>>qLKAJ@b=1e^o(gZ7Eaim%Yw@)Gz6 z)*Q}?Yfb5GBfTL@_G&Ig0X7MgefbvJUo9SPIVvq5Tqy=9tuIMg{-TLI9TEoH8^`QX{Q+$4&}v@_!TM%s#C4Ky>EUm;y4X}U4B zstfbrOXHn)lv@$_8T`gCMSomTpf=l^dc;^vSdTl$46dsp)5AMYm zprf*lc66r7>a%Q^(+zl^G8V-~QEBb)1)SZD%ze+YkOxV}$(BtNEVDZ5DGe=*=o zT3|Dl;5Ie&GQG${>u&46NXQG<@x*b3ct1XD;4-m)ZVc>hZSE`xu}M?Sr1y<&SZRNG zBDHqlOiYk3qwSk*S}Nv1?!EMf6)BeG^-Yq3n%akSmJG5}E<_YzHa$YaJqfeb-wp1B zSg9_RmsBFt?m8u4oSNFH^vDhjPR*+%6ZqE93&^w`;cOgC9&@XE)I3`n+_0=ZyBBq} z04dg~@{WdrnmRA2xwGdZmC(r#Go<;kW9BCH^+(q8p%l6`BqYCT4`Kyfw|X1yMw(x8=A$x|!y zfWW3+zALcybNqMXINgs&{S{CW8FzZ^DnJ6JHgyDR)|IE~ikwGPRMZos<#LssJ%4y$ zbZN7cvTc+6F|D-bF715B)7)+6>at-EtOi6AV}W=YBU%&I!K;<{o@On^9Uf~CM(X!D zLhKv*IT$#}+7i~~0sD+~!ES$PzyOp1eC#s7QP&8xa9cAZ4Aj_R+-#QrH

&JBMrr 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ℜ%zZwPx=SJC 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 X)YmruIi%Y{LNv4V7a$B(q^$fWB@aKt literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/extensions.jpg b/src/vs/workbench/services/gettingStarted/common/media/extensions.jpg new file mode 100644 index 0000000000000000000000000000000000000000..4a905f1ce80dd1152c734875003992f6f35f9826 GIT binary patch literal 134669 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 SnQ&a40#YKtLqX_2bN>hMQbgzg literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/forwardPorts.jpg b/src/vs/workbench/services/gettingStarted/common/media/forwardPorts.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d88db69392b8f9f6115332367bdcab388e7cadcd GIT binary patch literal 63227 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 brbIZqVJ>U(?+X8Jd{FoBKnI2P{aXDm3n9?Y literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/github.jpg b/src/vs/workbench/services/gettingStarted/common/media/github.jpg new file mode 100644 index 0000000000000000000000000000000000000000..e383489a9d21b7e750bcfeb989ce2a53322065bb GIT binary patch literal 133193 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%0ALbMmSVB^jB~-=QfscFu@74E#b(;W*mC{*wMpE_m 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%0A?EeL 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

**>dn>ItS^+_&H zM{^qXmi1p&JK*w+=^H-uZ~b3xE9O)BCOtKae;t2fE}xu-Uh4}l&@P0eW=tZZkpg95v*zpzWQ zE4)jBPEwNY#h*B!;}ToqAqPDK>+ZmVEun zgvlG@1v<^3+qxLwx=apHRc13Mc}7lV&AYEte``)#R*D~CLAM)!r@QzDHo}?3f&3(M z{=HKPnu>**@@LCKg^ABkL?Pncf@h_NB*21$RKdb zl)k3Z$x$MZB*1W{5Q6kCzD+)>5kG}Z9oWja?3f>XCx3QCf~l}+b!9cgQtI$+k_m-@ zk-`TS#(An{V%0{*zLD=keQi{UU#ZaTx8L#{=seBHpEAo%yWZZC`MWmJkA;Mgcqxg| z9n~aV7C-c_DT$|XsT4pYMUZ3^1mHD$JZb%_vb^?EAA?`xsJDd(_fJiU^U?&c!75t+ z@{AGYf=iH3#pDa>WAV+>#vL$_MAHpRbimntOJ#x_={G+Cfgc>dw(oG@ScpdI3Ga@Z6^dWT$=%1fArTe`lK7utL=E^&`g zB%v-i_)_i3?aVi-deg#kI!j0@gm`uzrDC<&PSh1+L6 zH~R`ifvnp{28_Qpj0w=GQ8#Cs$BFan&jRyy4IQX7ql)uCd7e8D=8JEV2#zLU;#^}E zz7llYWSdG~mE!gyg0@>B<(%88uI#z57jSk97Ia4iy)}FDr46dh0D6KoR}MOLMQXG; zi4flaT5cOqiqx!&%m=T3fYbW$*+SuhZ6u!d7&rT}hKz_+RP-N!8;MITBP&n0$%oi* zQ5AP5@`nR71*@dyurU?U?e%}s?ogI;W3!P|lJ{WN5;(}6R(d6T>=i9OBd=ThJdCoV zis>Rdxnu;J6<7!e(TX1vPWE~m?koTWuO(YQkqYuECnTc8a%~_MEqq&YG1UTxtiF`QkhL_+LZ6;Oeb+v z+kMiarpt0SC#oM=-QU*ezS`$_E~Dp>+gtkUVE0^kRvmUq@klziS*|C!C(t4JbHQ_t zr9tY~_;5$ipw<^l3()cj)4qt#LO>uljg*!SnK@Vgy8la5+0Ob3JtH zBCRJA#IDLf+5^;X^pOAcd2r1o^2(*Y{@(bMZk4LWGr=N}S9Z*b)>cfCvz>N5ay!rJ zUr3V94Im_#PcUEf0gr~xG{2%(5B8*eNL3l?2%9A6T9_M{z18??^uuOb5}YKmq6qq$ qzhcYf0a)qQuN&-q6(6}+Ct--?IxS%cU2IC5i(L8#@Xi1C`+os(HtF{O literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/openFolder.jpg b/src/vs/workbench/services/gettingStarted/common/media/openFolder.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2a0cd6195a579cc5533d3424f4c5dd3f72ee3e0e GIT binary patch literal 33397 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 OFQZB_{1EnM{=WbQIlDyw literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/openVSC.jpg b/src/vs/workbench/services/gettingStarted/common/media/openVSC.jpg new file mode 100644 index 0000000000000000000000000000000000000000..7878b3c5aa225f42f34fcd201a21ecd7b850c57e GIT binary patch literal 32044 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 literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/runProject.jpg b/src/vs/workbench/services/gettingStarted/common/media/runProject.jpg new file mode 100644 index 0000000000000000000000000000000000000000..603c54ff1764145b23033b0898218aaee211d641 GIT binary patch literal 77567 zcmcG$2Ut@}*D$&P5d=k)qEb~3qEso0bOZqfX+nr}6zL$n6Tpg~fJl{+&;%rq(0fy) zm(Y7rTIdJ?B%yeB0-pDr_j~UBp8vV`E|Wd8>a3Yrvu5_r#@|D~zXSBD%J-B3GBN-l z1OEZPM}e0B4GCyZo}@iZPe*^6nUR5kk@@m@7VzI?(Tm&{!H=kbIR7<%aRF`lTesx3 zO*BDo8D;rIRS=MWaC{TkPtXBQFj zho;HrgxZ9$y_<6B+wbv0T;pD{h+%RLXslJQ{!g^&mCCBqCNHC4rmfiRswJCUU_$^- z$W&>Y8QdJv6wx#GHc8`*wOnaW>hoJeyjYvjVcEKCjt?)S3ST~Mm}gj4kAs(@&D;8A z0}orH#Dwpd4z6wd25#)@xEpbBJ7qdXZv#QG-}hfGuU}o?H}>)ObubBfwWPBtC!@e| za5{x5VktXe)_f8P@b%59{&+g)J>ty~(Ca4a>6vvwR&%8u5qAJ*+MD!G$c$FWfAo)@ zVH^CQ%PiLTNuB;IfSlRgIFQl<0C+!!n*nI8S+S>wE^TaSCLh+wT-)}V7WO9-SAPR} z=sv5{!?en_Vp|Gp8kwzB7E zNZ;J12VLNw7J0F6W9M-Pa$6jhSo%GAQQ#Cr>>(c!n{C$$H2L3s;J&Jk)R<^R|we-G&mR<8UUmEGG# zqJhJOj@7|h_9CoY$LC#OZQqx+3ujtNIX_t%J}wm7my;`+9I?-sHx&32-2gyS_QxDw z_m@^H*0c##*#O=G=;(*eOcS`a#KzfB=1v$=#co+-sqzgM^rk`?B(2zE)cmdIp(FRR zW8LoE{bK~`#5H&uazjOZJV@hfpVXjKb4$PHEu>%@-35!x#2L#Ot1HGbBw?~gv3!-e zka~eF>FRfepK-Fuhc=iNC|yDWvGU>81$8Rbs8BPD8k9bVYPHDsLq0(F(WSDY-$**K z=D;*8l4IE-SW(qpHu4}zF=@@oo4Hp-#%msw6T7Ddee!poZxDW2u`CaoD|$eZ~7hJ z3Hy#zRxeIP?P}TMY7&wUwE%!|;7{#R5mQ?=oy*N8IN4#I&mn`=7SH?qE)v%};CxW}ikmdl@vs;dZ zrs-#JyUT)t_F>}bZ;AM7&ld=w~nTvOIS<0~B zT_s05V`l|6Ae}ASs4!)AIjz{o?4LHmlVXQ|PRgf(^L|JsdcY^YyXSHxmw{>5nK`SUk8yCz@<1Jx((I(z~~SD}}0L>LH}WUo0%dQ-A)CMU z^b#waJxgKlL0Pnxt4v~P^1rl2y$fHjd;*n??2_z0<52w>H_LUs3Py68B+`fjM_w)O z+~wp()}->EGy%}L2D_y*4ILSx*`m6>jaExh)~U1;!2T6%rq^Z-_2sij%#f;(dkl{&t11E1)q-pJ(;SKf2i1>DX@( zgP+agg5zP{A-l_$r<-9t+}5h^FoPQ=D?f0 zmeadla{iZ9wW;54Ktn50Y|EHE>V|uJfeSubRb*DHez|wURPAuTcX9^}AGyi2c>IK7 z7xkVVt3=vD`D{vfFLIy_!d}>es}A55D^jjL6}{3cBrccWC*xosikFz>G*}U?XT)CE zk<*Essu?sR*=Y-kFZK9W@U>X@5I7}bg6&3;$KxxJJeh0^6%4a+nWL34OFVX8x3;mX z*YNATD+(dzR7soJ-WS~U93P-#2&cXi4N^&mYhbwg3Q%CAZa&)jY29X7$&X(#IoCBh zjWIXcu)&AQ4yX^OlwL_fhi+ME<|460ZMqw_ct@SF^?g*x7DbR^;LS~*g*;zhI7bUHni_~B~?UBFw`myH)-e)&N@|HnN>ORv&zwA^72Z6(s#o( zKTPa)&nD-oSsxq$R?D~KWg=AQ8977Dm3E4?8^gG9?C6l%h5G_^N{xunDjjmkXJ0soX3=V3wux(kZ~G6+7|e zS-pIZ;2yn#D${sdgeSP#h8gnMu1P`g?$_qjhf8`r5t*`avzrC23!>VETCT^^YE!Ql z$5MINt*={*n|8M~JSy~zm`8RmKE$_rFG7{kre8Xw)<^9p95YWQ1@+X=$#86V6>E-q zNuw98`w`m86Nb?2&Y8J31b=X$y0(`-v0wb>?44_t6PQ2kt9R%*fFcP*r{rn8yN!MtXIWu- zLWPILE;%OY7Adsa4!x^9#SAL)^(ItE;vF5^3G})E9+5#K9pDG50jE0yl!+xk-bJZB zkMf$|x^yn$_0mS`-bBf_N106+fseRt{P=yo!hUdNk(nS8!fR7-QU`LIPP*O)9-NA8 zyFAT=-@v6Mp8%mv3EUdNGzxzj>KU{xD}cYg+D0%5U>NOQKgc*W;L9nzA^U2m28o5; z_nHk~IS|?+wG0RV5RMRRJborcIZ33${!z17=VJMZ-h?L(h)c8%pbTH{bEzC`%gV+< z7t{HbjS{>eP6NR(f(TtU-*nPh^cE+`a+Xhxb0!gteFp2L4d`HO z7>0lpmCl27QfqWZK(-8h9NYZixB-0qP4bi?Ad78XrVaqS;DhGt2wRdUWgs}FozFVo z{7QEHaAr*&B=Yrkce>5bSbpcQ%3#70^D0>p7Aun;}7-`+)_+1Q(4#f-MI~s*i^s4Bq2>qp%LzJQ?^m9 zdf)D^tvP}a6{Mi@HbzKrPpTRWwGNA7sO|?<06o)4*QG&rCrQ!owe4G;yy5ahRS>Ah zFSS~<`Eb$7lhC8fNfXXbnU1=+v?M^Kno81Xo+9!6tu?j}GV|ah%u!c!y!i^|l>Y#g zv_W-3gZ6ymu%5nZm%xY(1eJ@l%UNW4lH!VW;>oDMWKif!zLl-&942MRh3)bXvxLh zb2l}DrTB4$H}^%NOYgcSx&42LXswHw}^Ad2ju36ztdE=O=I$vGQzgbdmtL zI4BaMe7nw6D8^mFsDkr1SLn0tUA4Y>HC%?TTIH3bh>yu&_*;`b>6WzNLTn*)NWXOQ z&w15*;ti$reB+>r&9=CzzsX0{%Ct_4%&sU6wcw^Zev@kD*paa`D1X#Oe+!h)aFcKNO?cp8 zgUSnZW(fC9W#&AcIlH!b>5eGHD@%JznR@e3} z>#x;3@(eV+vxeS5yN>F#A2=4y`YFeZv!SwJrvLFg8dFXEwGYB2sNC!tb1e~BaTB zKsMa3xz}9!X)mYv2u^TD%yMPZ7IUiWXnz0za4PfmBERBlUSQ>H(Mep!5o_L(_zRwS zA7CU0iOZNKZSlS`a}`0l<0DMs5h5a6?5l6J+_?n=LpDZ-Cqe1}?$4YUp!8=6kj)Vw z-b~u~nSD&p5>gC1<5hzWT>xXfYwyX1kBP~S4sz)U$v7#euztN>m^aJ*vKKBDrBA#0 zXi!?art?Ws#d)EP{XZrF9PDBy)#s6vIqhZeC>brpXA16hLG4zPr)i-nSleB1u=k`a z>*U6TwXUfH5pW+m0`Hpll+rGcnaX0W?DU4W?Y{UJm@H5%R3<^Pk*nC6GL&IF_{} ziIr{Zh7t_gLrlLBc!3w&FTU^VX-cInCsfp#E)iX?+_fTG-q6@kjohknh zYh-oqx;{-RX`G17DvVV#Zd1b8WX^sBCM0t3cn+afI*Wl}(jQ^?1awi!B

k0O0W#Q8>m1tKk`ETjkfCjVP%*WIEXV^w4! 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%0Dt81C?FqvjO*w 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 M&^=H+p8Q??PYrAvUH||9 literal 0 HcmV?d00001 diff --git a/src/vs/workbench/services/gettingStarted/common/media/terminal.jpg b/src/vs/workbench/services/gettingStarted/common/media/terminal.jpg new file mode 100644 index 0000000000000000000000000000000000000000..295d7fe65c843e3c542213b5a55ea52aa00793ee GIT binary patch literal 46075 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 nznx=3uUZG;8{A?g6js%-HQ}7E6qr0I4ofOKl_W Date: Thu, 14 Jan 2021 22:09:57 +0100 Subject: [PATCH 062/171] update distro --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index d00bf559bd8..5fe7d508b8d 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "7c375a0219a5ba116446f459a0c1b711bc480fc6", + "distro": "cb2b2df95eb87c873b72420d14a4c67ad0c860c5", "author": { "name": "Microsoft Corporation" }, From 5029b4f362dfecd0c07783a48b84fecb879130a4 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 22:29:52 +0100 Subject: [PATCH 063/171] Fixes #112552: Set server marks to `ITimerService` --- .../remote/common/remoteAgentEnvironment.ts | 2 ++ .../workbench/contrib/remote/browser/remote.ts | 16 ++++++++++++++++ .../common/remoteAgentEnvironmentChannel.ts | 3 ++- 3 files changed, 20 insertions(+), 1 deletion(-) diff --git a/src/vs/platform/remote/common/remoteAgentEnvironment.ts b/src/vs/platform/remote/common/remoteAgentEnvironment.ts index 3052141ff01..fd27528099d 100644 --- a/src/vs/platform/remote/common/remoteAgentEnvironment.ts +++ b/src/vs/platform/remote/common/remoteAgentEnvironment.ts @@ -5,6 +5,7 @@ import { URI } from 'vs/base/common/uri'; import { OperatingSystem } from 'vs/base/common/platform'; +import * as performance from 'vs/base/common/performance'; export interface IRemoteAgentEnvironment { pid: number; @@ -18,6 +19,7 @@ export interface IRemoteAgentEnvironment { workspaceStorageHome: URI; userHome: URI; os: OperatingSystem; + marks: performance.PerformanceMark[]; } export interface RemoteAgentConnectionContext { diff --git a/src/vs/workbench/contrib/remote/browser/remote.ts b/src/vs/workbench/contrib/remote/browser/remote.ts index f1f85575bfd..2b02cb6b30f 100644 --- a/src/vs/workbench/contrib/remote/browser/remote.ts +++ b/src/vs/workbench/contrib/remote/browser/remote.ts @@ -55,6 +55,7 @@ import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { RemoteStatusIndicator } from 'vs/workbench/contrib/remote/browser/remoteIndicator'; import * as icons from 'vs/workbench/contrib/remote/browser/remoteIcons'; import { ILogService } from 'vs/platform/log/common/log'; +import { ITimerService } from 'vs/workbench/services/timer/browser/timerService'; export interface HelpInformation { @@ -596,6 +597,20 @@ Registry.as(WorkbenchActionExtensions.WorkbenchActions CATEGORIES.View.value ); +class RemoteMarkers implements IWorkbenchContribution { + + constructor( + @IRemoteAgentService remoteAgentService: IRemoteAgentService, + @ITimerService timerService: ITimerService, + ) { + remoteAgentService.getEnvironment().then(remoteEnv => { + if (remoteEnv) { + timerService.setPerformanceMarks('server', remoteEnv.marks); + } + }); + } +} + class VisibleProgress { public readonly location: ProgressLocation; @@ -851,3 +866,4 @@ workbenchContributionsRegistry.registerWorkbenchContribution(RemoteStatusIndicat workbenchContributionsRegistry.registerWorkbenchContribution(ForwardedPortsView, LifecyclePhase.Eventually); workbenchContributionsRegistry.registerWorkbenchContribution(PortRestore, LifecyclePhase.Eventually); workbenchContributionsRegistry.registerWorkbenchContribution(AutomaticPortForwarding, LifecyclePhase.Eventually); +workbenchContributionsRegistry.registerWorkbenchContribution(RemoteMarkers, LifecyclePhase.Eventually); diff --git a/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts b/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts index ed531a4e017..24000d04e61 100644 --- a/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts +++ b/src/vs/workbench/services/remote/common/remoteAgentEnvironmentChannel.ts @@ -65,7 +65,8 @@ export class RemoteExtensionEnvironmentChannelClient { globalStorageHome: URI.revive(data.globalStorageHome), workspaceStorageHome: URI.revive(data.workspaceStorageHome), userHome: URI.revive(data.userHome), - os: data.os + os: data.os, + marks: data.marks }; } From 9f3832dc68866d682c7869e7bbc9175752c40443 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Thu, 14 Jan 2021 22:39:11 +0100 Subject: [PATCH 064/171] Bust the node module cache --- .github/workflows/ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index f7b2dbbf11e..4525bf8f1c7 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,8 +37,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules8-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules8- + key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules9- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -100,8 +100,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules8-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules8- + key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules9- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -156,8 +156,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules8-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules8- + key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules9- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -209,8 +209,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules8-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules8- + key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules9- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} From 11d18c2c0947dae81e9ecfee281f431f6db51097 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 14 Jan 2021 14:48:27 -0800 Subject: [PATCH 065/171] `remoteName == codespaces` for codespaces section --- .../services/gettingStarted/common/gettingStartedContent.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index eeda3cdaa11..da6aec8e387 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -42,7 +42,7 @@ export const content: GettingStartedContent = [ id: 'Codespaces', title: localize('gettingStarted.codespaces.title', "Primer on GitHub Codespaces"), icon: codespacesIcon, - when: 'remoteConnectionState == connected', + when: 'remoteName == codespaces', description: localize('gettingStarted.codespaces.description', "Get up and running with your instant code environment."), content: { type: 'items', From 255853d1714d1138cf7231a330d8104ab7c3f8ba Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 14 Jan 2021 14:50:16 -0800 Subject: [PATCH 066/171] Remove emptyWorkspaceSupport when conditions --- .../services/gettingStarted/common/gettingStartedContent.ts | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index da6aec8e387..d40d74ea788 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -111,7 +111,6 @@ export const content: GettingStartedContent = [ title: localize('gettingStarted.setup.title', "Quick Setup"), description: localize('gettingStarted.setup.description', "Extend and customize VS Code to fit your needs."), icon: setupIcon, - when: 'emptyWorkspaceSupport', content: { type: 'items', items: [ @@ -150,7 +149,7 @@ export const content: GettingStartedContent = [ id: 'pickAFolderTask-Mac', title: localize('gettingStarted.setup.OpenFolder.title', "Open Your Project"), description: localize('gettingStarted.setup.OpenFolder.description', "Open a project folder to get started!"), - when: '!emptyWorkspaceSupport && isMac', + when: 'isMac', button: { title: localize('gettingStarted.setup.OpenFolder.button', "Pick a Folder"), command: 'workbench.action.files.openFileFolder' @@ -162,7 +161,7 @@ export const content: GettingStartedContent = [ id: 'pickAFolderTask-Other', title: localize('gettingStarted.setup.OpenFolder.title', "Open Your Project"), description: localize('gettingStarted.setup.OpenFolder.description', "Open a project folder to get started!"), - when: '!emptyWorkspaceSupport && !isMac', + when: '!isMac', button: { title: localize('gettingStarted.setup.OpenFolder.button', "Pick a Folder"), command: 'workbench.action.files.openFolder' From e32e353bfde647c1270e74e1a9fbcf6452a0ea07 Mon Sep 17 00:00:00 2001 From: rebornix Date: Thu, 14 Jan 2021 15:17:15 -0800 Subject: [PATCH 067/171] fix #114171. --- src/vs/vscode.proposed.d.ts | 6 ++ .../api/browser/mainThreadNotebook.ts | 11 ++-- .../workbench/api/common/extHost.protocol.ts | 1 + src/vs/workbench/api/common/extHostTypes.ts | 3 +- .../notebook/browser/notebookBrowser.ts | 12 ++++ .../notebook/browser/notebookEditorWidget.ts | 8 +++ .../notebook/browser/view/notebookCellList.ts | 64 +++++++++++++++++++ .../common/model/notebookTextModel.ts | 4 +- .../contrib/notebook/common/notebookCommon.ts | 15 +++-- .../notebook/test/notebookCommon.test.ts | 6 +- .../notebook/test/testNotebookEditor.ts | 2 +- .../test/browser/api/extHostNotebook.test.ts | 12 ++-- .../api/extHostNotebookConcatDocument.test.ts | 40 ++++++------ 13 files changed, 140 insertions(+), 44 deletions(-) diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index d4f775ccc45..0b792160eab 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -1294,11 +1294,17 @@ declare module 'vscode' { * The range will always be revealed in the center of the viewport. */ InCenter = 1, + /** * If the range is outside the viewport, it will be revealed in the center of the viewport. * Otherwise, it will be revealed with as little scrolling as possible. */ InCenterIfOutsideViewport = 2, + + /** + * The range will always be revealed at the top of the viewport. + */ + AtTop = 3 } export interface NotebookEditor { diff --git a/src/vs/workbench/api/browser/mainThreadNotebook.ts b/src/vs/workbench/api/browser/mainThreadNotebook.ts index 4e361ea1fc4..0b4b7f3f55d 100644 --- a/src/vs/workbench/api/browser/mainThreadNotebook.ts +++ b/src/vs/workbench/api/browser/mainThreadNotebook.ts @@ -646,14 +646,13 @@ export class MainThreadNotebooks extends Disposable implements MainThreadNoteboo switch (revealType) { case NotebookEditorRevealType.Default: - notebookEditor.revealInView(cell); - break; + return notebookEditor.revealCellRangeInView(range); case NotebookEditorRevealType.InCenter: - notebookEditor.revealInCenter(cell); - break; + return notebookEditor.revealInCenter(cell); case NotebookEditorRevealType.InCenterIfOutsideViewport: - notebookEditor.revealInCenterIfOutsideViewport(cell); - break; + return notebookEditor.revealInCenterIfOutsideViewport(cell); + case NotebookEditorRevealType.AtTop: + return notebookEditor.revealInViewAtTop(cell); default: break; } diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index a5f6d3ed535..4f24459ce50 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -754,6 +754,7 @@ export enum NotebookEditorRevealType { Default = 0, InCenter = 1, InCenterIfOutsideViewport = 2, + AtTop = 3 } export interface INotebookDocumentShowOptions { diff --git a/src/vs/workbench/api/common/extHostTypes.ts b/src/vs/workbench/api/common/extHostTypes.ts index e153af8aa46..fbd6592c661 100644 --- a/src/vs/workbench/api/common/extHostTypes.ts +++ b/src/vs/workbench/api/common/extHostTypes.ts @@ -2858,7 +2858,8 @@ export enum NotebookCellStatusBarAlignment { export enum NotebookEditorRevealType { Default = 0, InCenter = 1, - InCenterIfOutsideViewport = 2 + InCenterIfOutsideViewport = 2, + AtTop = 3 } diff --git a/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts b/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts index d06ec99a6b2..b5ed5c132a1 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookBrowser.ts @@ -500,11 +500,21 @@ export interface INotebookEditor extends IEditor, ICommonNotebookEditor { */ triggerScroll(event: IMouseWheelEvent): void; + /** + * The range will be revealed with as little scrolling as possible. + */ + revealCellRangeInView(range: ICellRange): void; + /** * Reveal cell into viewport. */ revealInView(cell: ICellViewModel): void; + /** + * Reveal cell into the top of viewport. + */ + revealInViewAtTop(cell: ICellViewModel): void; + /** * Reveal cell into viewport center. */ @@ -614,7 +624,9 @@ export interface INotebookCellList { focusElement(element: ICellViewModel): void; selectElement(element: ICellViewModel): void; getFocusedElements(): ICellViewModel[]; + revealElementsInView(range: ICellRange): void; revealElementInView(element: ICellViewModel): void; + revealElementInViewAtTop(element: ICellViewModel): void; revealElementInCenterIfOutsideViewport(element: ICellViewModel): void; revealElementInCenter(element: ICellViewModel): void; revealElementInCenterIfOutsideViewportAsync(element: ICellViewModel): Promise; diff --git a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts index f0f93c38438..036f4cb0f25 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebookEditorWidget.ts @@ -1226,10 +1226,18 @@ export class NotebookEditorWidget extends Disposable implements INotebookEditor // this.viewModel!.selectionHandles = [cell.handle]; } + revealCellRangeInView(range: ICellRange) { + return this._list.revealElementsInView(range); + } + revealInView(cell: ICellViewModel) { this._list.revealElementInView(cell); } + revealInViewAtTop(cell: ICellViewModel) { + this._list.revealElementInViewAtTop(cell); + } + revealInCenterIfOutsideViewport(cell: ICellViewModel) { this._list.revealElementInCenterIfOutsideViewport(cell); } diff --git a/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts b/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts index 8de660ff484..8d0c6a5422a 100644 --- a/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts +++ b/src/vs/workbench/contrib/notebook/browser/view/notebookCellList.ts @@ -547,6 +547,22 @@ export class NotebookCellList extends WorkbenchList implements ID return viewIndexInfo.index; } + private _getViewIndexUpperBound2(modelIndex: number) { + if (!this.hiddenRangesPrefixSum) { + return modelIndex; + } + + const viewIndexInfo = this.hiddenRangesPrefixSum.getIndexOf(modelIndex); + + if (viewIndexInfo.remainder !== 0) { + if (modelIndex >= this.hiddenRangesPrefixSum.getTotalValue()) { + return modelIndex - (this.hiddenRangesPrefixSum.getTotalValue() - this.hiddenRangesPrefixSum.getCount()); + } + } + + return viewIndexInfo.index; + } + focusElement(cell: ICellViewModel) { const index = this._getViewIndexUpperBound(cell); @@ -587,6 +603,46 @@ export class NotebookCellList extends WorkbenchList implements ID super.setFocus(indexes, browserEvent); } + revealElementsInView(range: ICellRange) { + const startIndex = this._getViewIndexUpperBound2(range.start); + + if (startIndex < 0) { + return; + } + + const endIndex = this._getViewIndexUpperBound2(range.end); + + const scrollTop = this.getViewScrollTop(); + const wrapperBottom = this.getViewScrollBottom(); + const elementTop = this.view.elementTop(startIndex); + if (elementTop >= scrollTop + && elementTop < wrapperBottom) { + // start element is visible + // check end + + const endElementTop = this.view.elementTop(endIndex); + const endElementHeight = this.view.elementHeight(endIndex); + + if (endElementTop >= wrapperBottom) { + return this._revealInternal(startIndex, false, CellRevealPosition.Top); + } + + if (endElementTop < wrapperBottom) { + // end element partially visible + if (endElementTop + endElementHeight - wrapperBottom < elementTop - scrollTop) { + // there is enough space to just scroll up a little bit to make the end element visible + return this.view.setScrollTop(scrollTop + endElementTop + endElementHeight - wrapperBottom); + } else { + // don't even try it + return this._revealInternal(startIndex, false, CellRevealPosition.Top); + } + } + } + + + this._revealInView(startIndex); + } + revealElementInView(cell: ICellViewModel) { const index = this._getViewIndexUpperBound(cell); @@ -595,6 +651,14 @@ export class NotebookCellList extends WorkbenchList implements ID } } + revealElementInViewAtTop(cell: ICellViewModel) { + const index = this._getViewIndexUpperBound(cell); + + if (index >= 0) { + this._revealInternal(index, false, CellRevealPosition.Top); + } + } + revealElementInCenterIfOutsideViewport(cell: ICellViewModel) { const index = this._getViewIndexUpperBound(cell); diff --git a/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts b/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts index ff58b2ef751..9ee463274b7 100644 --- a/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts +++ b/src/vs/workbench/contrib/notebook/common/model/notebookTextModel.ts @@ -275,7 +275,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel const mainCells = cells.map(cell => { const cellHandle = this._cellhandlePool++; - const cellUri = CellUri.generate(this.uri, cellHandle); + const cellUri = CellUri.generate(this.uri, this.viewType, cellHandle); return new NotebookCellTextModel(cellUri, cellHandle, cell.source, cell.language, cell.cellKind, cell.outputs || [], cell.metadata, this.transientOptions, this._modelService); }); @@ -425,7 +425,7 @@ export class NotebookTextModel extends Disposable implements INotebookTextModel // prepare add const cells = cellDtos.map(cellDto => { const cellHandle = this._cellhandlePool++; - const cellUri = CellUri.generate(this.uri, cellHandle); + const cellUri = CellUri.generate(this.uri, this.viewType, cellHandle); const cell = new NotebookCellTextModel( cellUri, cellHandle, cellDto.source, cellDto.language, cellDto.cellKind, cellDto.outputs || [], cellDto.metadata, this.transientOptions, diff --git a/src/vs/workbench/contrib/notebook/common/notebookCommon.ts b/src/vs/workbench/contrib/notebook/common/notebookCommon.ts index a2f99da121d..cbc5b9938ee 100644 --- a/src/vs/workbench/contrib/notebook/common/notebookCommon.ts +++ b/src/vs/workbench/contrib/notebook/common/notebookCommon.ts @@ -467,7 +467,7 @@ export function getCellUndoRedoComparisonKey(uri: URI) { return uri.toString(); } - return data.notebook.toString(); + return `vt=${data.viewType}&uri=data.notebook.toString()`; } @@ -477,10 +477,11 @@ export namespace CellUri { const _regex = /^ch(\d{7,})/; - export function generate(notebook: URI, handle: number): URI { + export function generate(notebook: URI, viewType: string, handle: number): URI { return notebook.with({ scheme, - fragment: `ch${handle.toString().padStart(7, '0')}${notebook.scheme !== Schemas.file ? notebook.scheme : ''}` + fragment: `ch${handle.toString().padStart(7, '0')}${notebook.scheme !== Schemas.file ? notebook.scheme : ''}`, + query: `vt=${viewType}` }); } @@ -492,7 +493,7 @@ export namespace CellUri { }); } - export function parse(cell: URI): { notebook: URI, handle: number } | undefined { + export function parse(cell: URI): { notebook: URI, handle: number, viewType: string } | undefined { if (cell.scheme !== scheme) { return undefined; } @@ -505,8 +506,10 @@ export namespace CellUri { handle, notebook: cell.with({ scheme: cell.fragment.substr(match[0].length) || Schemas.file, - fragment: null - }) + fragment: null, + query: null + }), + viewType: cell.query.substr('vt='.length) }; } } diff --git a/src/vs/workbench/contrib/notebook/test/notebookCommon.test.ts b/src/vs/workbench/contrib/notebook/test/notebookCommon.test.ts index 38a91a236ce..2104ef1586d 100644 --- a/src/vs/workbench/contrib/notebook/test/notebookCommon.test.ts +++ b/src/vs/workbench/contrib/notebook/test/notebookCommon.test.ts @@ -336,11 +336,12 @@ suite('CellUri', function () { const nb = URI.parse('foo:///bar/følder/file.nb'); const id = 17; - const data = CellUri.generate(nb, id); + const data = CellUri.generate(nb, 'test', id); const actual = CellUri.parse(data); assert.ok(Boolean(actual)); assert.equal(actual?.handle, id); assert.equal(actual?.notebook.toString(), nb.toString()); + assert.equal(actual?.viewType, 'test'); }); test('parse, generate (foo-scheme)', function () { @@ -348,10 +349,11 @@ suite('CellUri', function () { const nb = URI.parse('foo:///bar/følder/file.nb'); const id = 17; - const data = CellUri.generate(nb, id); + const data = CellUri.generate(nb, 'test', id); const actual = CellUri.parse(data); assert.ok(Boolean(actual)); assert.equal(actual?.handle, id); assert.equal(actual?.notebook.toString(), nb.toString()); + assert.equal(actual?.viewType, 'test'); }); }); diff --git a/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts b/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts index fa820f8fb9d..0d12ec2f4b6 100644 --- a/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts +++ b/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts @@ -47,7 +47,7 @@ export class TestCell extends NotebookCellTextModel { outputs: IProcessedOutput[], modelService: ITextModelService ) { - super(CellUri.generate(URI.parse('test:///fake/notebook'), handle), handle, source, language, cellKind, outputs, undefined, { transientMetadata: {}, transientOutputs: false }, modelService); + super(CellUri.generate(URI.parse('test:///fake/notebook'), viewType, handle), handle, source, language, cellKind, outputs, undefined, { transientMetadata: {}, transientOutputs: false }, modelService); } } diff --git a/src/vs/workbench/test/browser/api/extHostNotebook.test.ts b/src/vs/workbench/test/browser/api/extHostNotebook.test.ts index 9b3a4c2ec2a..e2d51f7cceb 100644 --- a/src/vs/workbench/test/browser/api/extHostNotebook.test.ts +++ b/src/vs/workbench/test/browser/api/extHostNotebook.test.ts @@ -62,7 +62,7 @@ suite('NotebookCell#Document', function () { versionId: 0, cells: [{ handle: 0, - uri: CellUri.generate(notebookUri, 0), + uri: CellUri.generate(notebookUri, 'test', 0), source: ['### Heading'], eol: '\n', language: 'markdown', @@ -70,7 +70,7 @@ suite('NotebookCell#Document', function () { outputs: [], }, { handle: 1, - uri: CellUri.generate(notebookUri, 1), + uri: CellUri.generate(notebookUri, 'test', 1), source: ['console.log("aaa")', 'console.log("bbb")'], eol: '\n', language: 'javascript', @@ -167,7 +167,7 @@ suite('NotebookCell#Document', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 2, - uri: CellUri.generate(notebookUri, 2), + uri: CellUri.generate(notebookUri, 'test', 2), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -175,7 +175,7 @@ suite('NotebookCell#Document', function () { outputs: [], }, { handle: 3, - uri: CellUri.generate(notebookUri, 3), + uri: CellUri.generate(notebookUri, 'test', 3), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', @@ -284,7 +284,7 @@ suite('NotebookCell#Document', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 2, - uri: CellUri.generate(notebookUri, 2), + uri: CellUri.generate(notebookUri, 'test', 2), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -292,7 +292,7 @@ suite('NotebookCell#Document', function () { outputs: [], }, { handle: 3, - uri: CellUri.generate(notebookUri, 3), + uri: CellUri.generate(notebookUri, 'test', 3), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', diff --git a/src/vs/workbench/test/browser/api/extHostNotebookConcatDocument.test.ts b/src/vs/workbench/test/browser/api/extHostNotebookConcatDocument.test.ts index e49a0c930ef..776543c4fda 100644 --- a/src/vs/workbench/test/browser/api/extHostNotebookConcatDocument.test.ts +++ b/src/vs/workbench/test/browser/api/extHostNotebookConcatDocument.test.ts @@ -61,7 +61,7 @@ suite('NotebookConcatDocument', function () { viewType: 'test', cells: [{ handle: 0, - uri: CellUri.generate(notebookUri, 0), + uri: CellUri.generate(notebookUri, 'test', 0), source: ['### Heading'], eol: '\n', language: 'markdown', @@ -122,8 +122,8 @@ suite('NotebookConcatDocument', function () { test('contains', function () { - const cellUri1 = CellUri.generate(notebook.uri, 1); - const cellUri2 = CellUri.generate(notebook.uri, 2); + const cellUri1 = CellUri.generate(notebook.uri, 'test', 1); + const cellUri2 = CellUri.generate(notebook.uri, 'test', 2); extHostNotebooks.$acceptModelChanged(notebookUri, { versionId: notebook.notebookDocument.version + 1, @@ -169,7 +169,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -177,7 +177,7 @@ suite('NotebookConcatDocument', function () { outputs: [], }, { handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', @@ -214,7 +214,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -241,7 +241,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[1, 0, [{ handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', @@ -292,7 +292,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -300,7 +300,7 @@ suite('NotebookConcatDocument', function () { outputs: [], }, { handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', @@ -350,7 +350,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['fooLang-document'], eol: '\n', language: 'fooLang', @@ -358,7 +358,7 @@ suite('NotebookConcatDocument', function () { outputs: [], }, { handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['barLang-document'], eol: '\n', language: 'barLang', @@ -384,7 +384,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[2, 0, [{ handle: 3, - uri: CellUri.generate(notebook.uri, 3), + uri: CellUri.generate(notebook.uri, 'test', 3), source: ['barLang-document2'], eol: '\n', language: 'barLang', @@ -422,7 +422,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -430,7 +430,7 @@ suite('NotebookConcatDocument', function () { outputs: [], }, { handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', @@ -479,7 +479,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -487,7 +487,7 @@ suite('NotebookConcatDocument', function () { outputs: [], }, { handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', @@ -520,7 +520,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -528,7 +528,7 @@ suite('NotebookConcatDocument', function () { outputs: [], }, { handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', @@ -558,7 +558,7 @@ suite('NotebookConcatDocument', function () { kind: NotebookCellsChangeType.ModelChange, changes: [[0, 0, [{ handle: 1, - uri: CellUri.generate(notebook.uri, 1), + uri: CellUri.generate(notebook.uri, 'test', 1), source: ['Hello', 'World', 'Hello World!'], eol: '\n', language: 'test', @@ -566,7 +566,7 @@ suite('NotebookConcatDocument', function () { outputs: [], }, { handle: 2, - uri: CellUri.generate(notebook.uri, 2), + uri: CellUri.generate(notebook.uri, 'test', 2), source: ['Hallo', 'Welt', 'Hallo Welt!'], eol: '\n', language: 'test', From ad3974ad88a4f338790a479442edbca01d4ed96f Mon Sep 17 00:00:00 2001 From: rebornix Date: Thu, 14 Jan 2021 15:17:49 -0800 Subject: [PATCH 068/171] :lipstick: --- .../workbench/contrib/notebook/test/testNotebookEditor.ts | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts b/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts index 0d12ec2f4b6..8c08ff64f09 100644 --- a/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts +++ b/src/vs/workbench/contrib/notebook/test/testNotebookEditor.ts @@ -66,6 +66,12 @@ export class TestNotebookEditor implements INotebookEditor { constructor( ) { } + revealCellRangeInView(range: ICellRange): void { + throw new Error('Method not implemented.'); + } + revealInViewAtTop(cell: ICellViewModel): void { + throw new Error('Method not implemented.'); + } getCellOutputLayoutInfo(cell: IGenericCellViewModel): INotebookCellOutputLayoutInfo { throw new Error('Method not implemented.'); } From 856277c8590c6bb4a62acde7056f1e0eaad8c4e8 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 14 Jan 2021 15:20:48 -0800 Subject: [PATCH 069/171] Github Login => Setting Sync --- .../contrib/userDataSync/browser/userDataSync.ts | 3 +++ .../gettingStarted/common/gettingStartedContent.ts | 14 +++++++------- 2 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts index e4b2cc315ae..d00b36af809 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts @@ -54,6 +54,7 @@ import { UserDataSyncDataViews } from 'vs/workbench/contrib/userDataSync/browser import { IUserDataSyncWorkbenchService, getSyncAreaLabel, AccountStatus, CONTEXT_SYNC_STATE, CONTEXT_SYNC_ENABLEMENT, CONTEXT_ACCOUNT_STATE, CONFIGURE_SYNC_COMMAND_ID, SHOW_SYNC_LOG_COMMAND_ID, SYNC_VIEW_CONTAINER_ID, SYNC_TITLE, SYNC_VIEW_ICON } from 'vs/workbench/services/userDataSync/common/userDataSync'; import { Codicon } from 'vs/base/common/codicons'; import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer'; +import { IGettingStartedService } from 'vs/workbench/services/gettingStarted/common/gettingStartedService'; const CONTEXT_CONFLICTS_SOURCES = new RawContextKey('conflictsSources', ''); @@ -117,6 +118,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo @ITelemetryService private readonly telemetryService: ITelemetryService, @IProductService private readonly productService: IProductService, @IStorageService private readonly storageService: IStorageService, + @IGettingStartedService private readonly gettingStartedService: IGettingStartedService, @IOpenerService private readonly openerService: IOpenerService, @IAuthenticationService private readonly authenticationService: IAuthenticationService, @IUserDataSyncStoreManagementService private readonly userDataSyncStoreManagementService: IUserDataSyncStoreManagementService, @@ -447,6 +449,7 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo await this.selectSettingsSyncService(this.userDataSyncStoreManagementService.userDataSyncStore); } await this.userDataSyncWorkbenchService.turnOn(); + this.gettingStartedService.progressByEvent('sync-enabled'); this.storageService.store('sync.donotAskPreviewConfirmation', true, StorageScope.GLOBAL, StorageTarget.MACHINE); } catch (e) { if (isPromiseCanceledError(e)) { diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index d40d74ea788..8a02ecc09dc 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -134,15 +134,15 @@ export const content: GettingStartedContent = [ media: { type: 'image', altText: 'Language extensions', path: 'languageExtensions.jpg', } }, { - id: 'githubLogin', - title: localize('gettingStarted.githubLogin.title', "Use GitHub in VS Code"), - description: localize('gettingStarted.githubLogin.description', "Integrated GitHub makes it easier for you to manage projects from inside your code editor, including authentication, publishing repos, and viewing your repo timeline."), - when: '!githubBrowser:hasProviders', + id: 'settingsSync', + title: localize('gettingStarted.settingsSync.title', "Syncronize Settings"), + description: localize('gettingStarted.settingsSync.description', "Sign in to syncronize things like settings, extensions, and more, across your devices."), + when: '!syncEnabled && !userDataSyncTurningOn && syncStatus != uninitialized && userDataSyncAccountStatus != uninitialized', button: { - title: localize('gettingStarted.githubLogin.button', "Sign in to GitHub"), - command: 'githubsignIn', + title: localize('gettingStarted.settingsSync.button', "Sign in to Sync"), + command: 'workbench.userDataSync.actions.turnOn', }, - doneOn: { commandExecuted: 'workbench.extensions.action.showLanguageExtensions' }, + doneOn: { eventFired: 'sync-enabled' }, media: { type: 'image', altText: 'Commiting a change via Git in VS Code.', path: 'github.jpg', } }, { From 56a6279a1c8616781180bfa52b4b5fb3a1ac243b Mon Sep 17 00:00:00 2001 From: Rob Lourens Date: Thu, 14 Jan 2021 14:52:59 -0800 Subject: [PATCH 070/171] Don't use getActions in search view #92038 --- src/vs/base/browser/ui/findinput/findInput.ts | 4 + .../search/browser/search.contribution.ts | 200 +++++++++---- .../contrib/search/browser/searchActions.ts | 282 ++++-------------- .../contrib/search/browser/searchView.ts | 210 ++++++------- .../contrib/search/common/constants.ts | 5 +- .../workbench/contrib/search/common/search.ts | 9 + .../browser/searchEditor.contribution.ts | 28 +- .../browser/searchEditorActions.ts | 81 ++--- 8 files changed, 369 insertions(+), 450 deletions(-) diff --git a/src/vs/base/browser/ui/findinput/findInput.ts b/src/vs/base/browser/ui/findinput/findInput.ts index cf7db18c20b..e0e21cad1e9 100644 --- a/src/vs/base/browser/ui/findinput/findInput.ts +++ b/src/vs/base/browser/ui/findinput/findInput.ts @@ -258,6 +258,10 @@ export class FindInput extends Widget { this.onmousedown(this.inputBox.inputElement, (e) => this._onMouseDown.fire(e)); } + public get onDidChange(): Event { + return this.inputBox.onDidChange; + } + public enable(): void { this.domNode.classList.remove('disabled'); this.inputBox.enable(); diff --git a/src/vs/workbench/contrib/search/browser/search.contribution.ts b/src/vs/workbench/contrib/search/browser/search.contribution.ts index 8834497c4ff..ebda880f066 100644 --- a/src/vs/workbench/contrib/search/browser/search.contribution.ts +++ b/src/vs/workbench/contrib/search/browser/search.contribution.ts @@ -8,53 +8,53 @@ import { onUnexpectedError } from 'vs/base/common/errors'; import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; import * as platform from 'vs/base/common/platform'; import { dirname } from 'vs/base/common/resources'; +import { assertIsDefined, assertType } from 'vs/base/common/types'; import { URI } from 'vs/base/common/uri'; import { ToggleCaseSensitiveKeybinding, TogglePreserveCaseKeybinding, ToggleRegexKeybinding, ToggleWholeWordKeybinding } from 'vs/editor/contrib/find/findModel'; +import { AbstractGotoLineQuickAccessProvider } from 'vs/editor/contrib/quickAccess/gotoLineQuickAccess'; import * as nls from 'vs/nls'; -import { ICommandAction, MenuId, MenuRegistry, SyncActionDescriptor } from 'vs/platform/actions/common/actions'; +import { Action2, ICommandAction, MenuId, MenuRegistry, registerAction2, SyncActionDescriptor } from 'vs/platform/actions/common/actions'; import { CommandsRegistry, ICommandHandler, ICommandService } from 'vs/platform/commands/common/commands'; -import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; +import { ConfigurationTarget, IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { ConfigurationScope, Extensions as ConfigurationExtensions, IConfigurationRegistry } from 'vs/platform/configuration/common/configurationRegistry'; -import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; +import { ContextKeyEqualsExpr, ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IFileService } from 'vs/platform/files/common/files'; +import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; -import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { IListService, WorkbenchListFocusContextKey, WorkbenchObjectTree } from 'vs/platform/list/browser/listService'; +import { Extensions as QuickAccessExtensions, IQuickAccessRegistry } from 'vs/platform/quickinput/common/quickAccess'; +import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; import { Registry } from 'vs/platform/registry/common/platform'; +import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; +import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer'; import { defaultQuickAccessContextKeyValue } from 'vs/workbench/browser/quickaccess'; import { CATEGORIES, Extensions as ActionExtensions, IWorkbenchActionRegistry } from 'vs/workbench/common/actions'; import { Extensions as WorkbenchExtensions, IWorkbenchContribution, IWorkbenchContributionsRegistry } from 'vs/workbench/common/contributions'; -import { Extensions as ViewExtensions, IViewsRegistry, IViewContainersRegistry, ViewContainerLocation, IViewDescriptorService, IViewsService } from 'vs/workbench/common/views'; +import { Extensions as ViewExtensions, IViewContainersRegistry, IViewDescriptorService, IViewsRegistry, IViewsService, ViewContainerLocation } from 'vs/workbench/common/views'; +import { GotoSymbolQuickAccessProvider } from 'vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess'; +import { ExplorerViewPaneContainer } from 'vs/workbench/contrib/files/browser/explorerViewlet'; import { getMultiSelectedResources, IExplorerService } from 'vs/workbench/contrib/files/browser/files'; import { ExplorerFolderContext, ExplorerRootContext, FilesExplorerFocusCondition, VIEWLET_ID as VIEWLET_ID_FILES } from 'vs/workbench/contrib/files/common/files'; +import { AnythingQuickAccessProvider } from 'vs/workbench/contrib/search/browser/anythingQuickAccess'; import { registerContributions as replaceContributions } from 'vs/workbench/contrib/search/browser/replaceContributions'; -import { clearHistoryCommand, ClearSearchResultsAction, CloseReplaceAction, CollapseDeepestExpandedLevelAction, copyAllCommand, copyMatchCommand, copyPathCommand, FocusNextInputAction, FocusNextSearchResultAction, FocusPreviousInputAction, FocusPreviousSearchResultAction, focusSearchListCommand, getSearchView, openSearchView, OpenSearchViewletAction, RefreshAction, RemoveAction, ReplaceAction, ReplaceAllAction, ReplaceAllInFolderAction, ReplaceInFilesAction, toggleCaseSensitiveCommand, togglePreserveCaseCommand, toggleRegexCommand, toggleWholeWordCommand, FindInFilesCommand, ToggleSearchOnTypeAction, ExpandAllAction } from 'vs/workbench/contrib/search/browser/searchActions'; +import { cancelSearch, clearHistoryCommand, clearSearchResults, CloseReplaceAction, collapseDeepestExpandedLevel, copyAllCommand, copyMatchCommand, copyPathCommand, expandAll, FindInFilesCommand, FocusNextInputAction, FocusNextSearchResultAction, FocusPreviousInputAction, FocusPreviousSearchResultAction, focusSearchListCommand, getSearchView, openSearchView, OpenSearchViewletAction, refreshSearch, RemoveAction, ReplaceAction, ReplaceAllAction, ReplaceAllInFolderAction, ReplaceInFilesAction, toggleCaseSensitiveCommand, togglePreserveCaseCommand, toggleRegexCommand, ToggleSearchOnTypeAction, toggleWholeWordCommand } from 'vs/workbench/contrib/search/browser/searchActions'; +import { searchClearIcon, searchCollapseAllIcon, searchExpandAllIcon, searchRefreshIcon, searchStopIcon, searchViewIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; import { SearchView } from 'vs/workbench/contrib/search/browser/searchView'; import { registerContributions as searchWidgetContributions } from 'vs/workbench/contrib/search/browser/searchWidget'; -import * as Constants from 'vs/workbench/contrib/search/common/constants'; -import * as SearchEditorConstants from 'vs/workbench/contrib/searchEditor/browser/constants'; -import { getWorkspaceSymbols } from 'vs/workbench/contrib/search/common/search'; -import { ISearchHistoryService, SearchHistoryService } from 'vs/workbench/contrib/search/common/searchHistoryService'; -import { FileMatchOrMatch, ISearchWorkbenchService, RenderableMatch, SearchWorkbenchService, FileMatch, Match, FolderMatch } from 'vs/workbench/contrib/search/common/searchModel'; -import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; -import { VIEWLET_ID, VIEW_ID, SEARCH_EXCLUDE_CONFIG, SearchSortOrder, ISearchConfiguration } from 'vs/workbench/services/search/common/search'; -import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; -import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; -import { ExplorerViewPaneContainer } from 'vs/workbench/contrib/files/browser/explorerViewlet'; -import { assertType, assertIsDefined } from 'vs/base/common/types'; -import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; -import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor'; -import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer'; -import { IQuickAccessRegistry, Extensions as QuickAccessExtensions } from 'vs/platform/quickinput/common/quickAccess'; import { SymbolsQuickAccessProvider } from 'vs/workbench/contrib/search/browser/symbolsQuickAccess'; -import { AnythingQuickAccessProvider } from 'vs/workbench/contrib/search/browser/anythingQuickAccess'; -import { IQuickInputService } from 'vs/platform/quickinput/common/quickInput'; -import { AbstractGotoLineQuickAccessProvider } from 'vs/editor/contrib/quickAccess/gotoLineQuickAccess'; -import { GotoSymbolQuickAccessProvider } from 'vs/workbench/contrib/codeEditor/browser/quickaccess/gotoSymbolQuickAccess'; -import { searchViewIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; +import * as Constants from 'vs/workbench/contrib/search/common/constants'; import { resolveResourcesForSearchIncludes } from 'vs/workbench/contrib/search/common/queryBuilder'; +import { getWorkspaceSymbols, SearchStateKey, SearchUIState } from 'vs/workbench/contrib/search/common/search'; +import { ISearchHistoryService, SearchHistoryService } from 'vs/workbench/contrib/search/common/searchHistoryService'; +import { FileMatch, FileMatchOrMatch, FolderMatch, ISearchWorkbenchService, Match, RenderableMatch, SearchWorkbenchService } from 'vs/workbench/contrib/search/common/searchModel'; +import * as SearchEditorConstants from 'vs/workbench/contrib/searchEditor/browser/constants'; +import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor'; +import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; +import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; +import { ISearchConfiguration, SearchSortOrder, SEARCH_EXCLUDE_CONFIG, VIEWLET_ID, VIEW_ID } from 'vs/workbench/services/search/common/search'; +import { IViewletService } from 'vs/workbench/services/viewlet/browser/viewlet'; registerSingleton(ISearchWorkbenchService, SearchWorkbenchService, true); registerSingleton(ISearchHistoryService, SearchHistoryService, true); @@ -128,19 +128,6 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ } }); -KeybindingsRegistry.registerCommandAndKeybindingRule({ - id: Constants.CancelActionId, - weight: KeybindingWeight.WorkbenchContrib, - when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, WorkbenchListFocusContextKey), - primary: KeyCode.Escape, - handler: (accessor, args: any) => { - const searchView = getSearchView(accessor.get(IViewsService)); - if (searchView) { - searchView.cancelSearch(); - } - } -}); - KeybindingsRegistry.registerCommandAndKeybindingRule({ id: Constants.RemoveActionId, weight: KeybindingWeight.WorkbenchContrib, @@ -373,6 +360,121 @@ CommandsRegistry.registerCommand({ } }); +registerAction2(class CancelSearchAction extends Action2 { + constructor() { + super({ + id: 'search.action.cancel', + title: nls.localize('CancelSearchAction.label', "Cancel Search"), + icon: searchStopIcon, + category, + f1: true, + precondition: SearchStateKey.isEqualTo(SearchUIState.Idle).negate(), + keybinding: { + weight: KeybindingWeight.WorkbenchContrib, + when: ContextKeyExpr.and(Constants.SearchViewVisibleKey, WorkbenchListFocusContextKey), + primary: KeyCode.Escape, + }, + menu: [{ + id: MenuId.ViewTitle, + group: 'navigation', + order: 0, + when: ContextKeyExpr.and(ContextKeyEqualsExpr.create('view', VIEW_ID), SearchStateKey.isEqualTo(SearchUIState.SlowSearch)), + }] + }); + } + run(accessor: ServicesAccessor, ...args: any[]) { + return cancelSearch(accessor); + } +}); + +registerAction2(class RefreshAction extends Action2 { + constructor() { + super({ + id: 'search.action.refreshSearchResults', + title: nls.localize('RefreshAction.label', "Refresh"), + icon: searchRefreshIcon, + precondition: Constants.ViewHasSearchPatternKey, + category, + f1: true, + menu: [{ + id: MenuId.ViewTitle, + group: 'navigation', + order: 0, + when: ContextKeyExpr.and(ContextKeyEqualsExpr.create('view', VIEW_ID), SearchStateKey.isEqualTo(SearchUIState.SlowSearch).negate()), + }] + }); + } + run(accessor: ServicesAccessor, ...args: any[]) { + return refreshSearch(accessor); + } +}); + +registerAction2(class CollapseDeepestExpandedLevelAction extends Action2 { + constructor() { + super({ + id: 'search.action.collapseSearchResults', + title: nls.localize('CollapseDeepestExpandedLevelAction.label', "Collapse All"), + category, + icon: searchCollapseAllIcon, + f1: true, + precondition: ContextKeyExpr.and(Constants.HasSearchResults, Constants.ViewHasSomeCollapsibleKey), + menu: [{ + id: MenuId.ViewTitle, + group: 'navigation', + order: 3, + when: ContextKeyExpr.and(ContextKeyEqualsExpr.create('view', VIEW_ID), ContextKeyExpr.or(Constants.HasSearchResults.negate(), Constants.ViewHasSomeCollapsibleKey)), + }] + }); + } + run(accessor: ServicesAccessor, ...args: any[]) { + return collapseDeepestExpandedLevel(accessor); + } +}); + +registerAction2(class ExpandAllAction extends Action2 { + constructor() { + super({ + id: 'search.action.expandSearchResults', + title: nls.localize('ExpandAllAction.label', "Expand All"), + category, + icon: searchExpandAllIcon, + f1: true, + precondition: ContextKeyExpr.and(Constants.HasSearchResults, Constants.ViewHasSomeCollapsibleKey.toNegated()), + menu: [{ + id: MenuId.ViewTitle, + group: 'navigation', + order: 3, + when: ContextKeyExpr.and(ContextKeyEqualsExpr.create('view', VIEW_ID), Constants.HasSearchResults, Constants.ViewHasSomeCollapsibleKey.toNegated()), + }] + }); + } + run(accessor: ServicesAccessor, ...args: any[]) { + return expandAll(accessor); + } +}); + +registerAction2(class ClearSearchResultsAction extends Action2 { + constructor() { + super({ + id: 'search.action.clearSearchResults', + title: nls.localize('ClearSearchResultsAction.label', "Clear Search Results"), + category, + icon: searchClearIcon, + f1: true, + precondition: ContextKeyExpr.or(Constants.HasSearchResults, Constants.ViewHasSearchPatternKey, Constants.ViewHasReplacePatternKey, Constants.ViewHasFilePatternKey), + menu: [{ + id: MenuId.ViewTitle, + group: 'navigation', + order: 1, + when: ContextKeyEqualsExpr.create('view', VIEW_ID), + }] + }); + } + run(accessor: ServicesAccessor, ...args: any[]) { + return clearSearchResults(accessor); + } +}); + const RevealInSideBarForSearchResultsCommand: ICommandAction = { id: Constants.RevealInSideBarForSearchResults, title: nls.localize('revealInSideBar', "Reveal in Side Bar") @@ -449,20 +551,6 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ handler: searchInFolderCommand }); -CommandsRegistry.registerCommand({ - id: ClearSearchResultsAction.ID, - handler: (accessor, args: any) => { - accessor.get(IInstantiationService).createInstance(ClearSearchResultsAction, ClearSearchResultsAction.ID, '').run(); - } -}); - -CommandsRegistry.registerCommand({ - id: RefreshAction.ID, - handler: (accessor, args: any) => { - accessor.get(IInstantiationService).createInstance(RefreshAction, RefreshAction.ID, '').run(); - } -}); - const FIND_IN_WORKSPACE_ID = 'filesExplorer.findInWorkspace'; CommandsRegistry.registerCommand({ id: FIND_IN_WORKSPACE_ID, @@ -686,12 +774,8 @@ KeybindingsRegistry.registerCommandAndKeybindingRule({ } }); -registry.registerWorkbenchAction(SyncActionDescriptor.from(CollapseDeepestExpandedLevelAction), 'Search: Collapse All', category.value); -registry.registerWorkbenchAction(SyncActionDescriptor.from(ExpandAllAction), 'Search: Expand All', category.value); registry.registerWorkbenchAction(SyncActionDescriptor.from(ShowAllSymbolsAction, { primary: KeyMod.CtrlCmd | KeyCode.KEY_T }), 'Go to Symbol in Workspace...'); registry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleSearchOnTypeAction), 'Search: Toggle Search on Type', category.value); -registry.registerWorkbenchAction(SyncActionDescriptor.from(RefreshAction), 'Search: Refresh', category.value); -registry.registerWorkbenchAction(SyncActionDescriptor.from(ClearSearchResultsAction), 'Search: Clear Search Results', category.value); // Register Quick Access Handler const quickAccessRegistry = Registry.as(QuickAccessExtensions.Quickaccess); diff --git a/src/vs/workbench/contrib/search/browser/searchActions.ts b/src/vs/workbench/contrib/search/browser/searchActions.ts index 00bdbc81b0e..d0e84ccc97f 100644 --- a/src/vs/workbench/contrib/search/browser/searchActions.ts +++ b/src/vs/workbench/contrib/search/browser/searchActions.ts @@ -4,34 +4,34 @@ *--------------------------------------------------------------------------------------------*/ import * as DOM from 'vs/base/browser/dom'; +import { ITreeNavigator } from 'vs/base/browser/ui/tree/tree'; import { Action } from 'vs/base/common/actions'; import { createKeybinding, ResolvedKeybinding } from 'vs/base/common/keyCodes'; import { isWindows, OS } from 'vs/base/common/platform'; import * as nls from 'vs/nls'; import { IClipboardService } from 'vs/platform/clipboard/common/clipboardService'; -import { ILabelService } from 'vs/platform/label/common/label'; import { ICommandHandler, ICommandService } from 'vs/platform/commands/common/commands'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; +import { ILabelService } from 'vs/platform/label/common/label'; import { getSelectionKeyboardEvent, WorkbenchObjectTree } from 'vs/platform/list/browser/listService'; +import { ThemeIcon } from 'vs/platform/theme/common/themeService'; +import { IViewsService } from 'vs/workbench/common/views'; +import { searchRemoveIcon, searchReplaceAllIcon, searchReplaceIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; import { SearchView } from 'vs/workbench/contrib/search/browser/searchView'; import * as Constants from 'vs/workbench/contrib/search/common/constants'; import { IReplaceService } from 'vs/workbench/contrib/search/common/replace'; -import { FolderMatch, FileMatch, FolderMatchWithResource, Match, RenderableMatch, searchMatchComparer, SearchResult } from 'vs/workbench/contrib/search/common/searchModel'; +import { ISearchHistoryService } from 'vs/workbench/contrib/search/common/searchHistoryService'; +import { FileMatch, FolderMatch, FolderMatchWithResource, Match, RenderableMatch, searchMatchComparer, SearchResult } from 'vs/workbench/contrib/search/common/searchModel'; +import { OpenEditorCommandId } from 'vs/workbench/contrib/searchEditor/browser/constants'; +import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor'; +import { OpenSearchEditorArgs } from 'vs/workbench/contrib/searchEditor/browser/searchEditor.contribution'; +import { SearchEditorInput } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; -import { ISearchConfiguration, VIEW_ID, VIEWLET_ID } from 'vs/workbench/services/search/common/search'; -import { ISearchHistoryService } from 'vs/workbench/contrib/search/common/searchHistoryService'; -import { ITreeNavigator } from 'vs/base/browser/ui/tree/tree'; -import { IViewsService } from 'vs/workbench/common/views'; -import { SearchEditorInput } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput'; -import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor'; -import { searchRefreshIcon, searchCollapseAllIcon, searchExpandAllIcon, searchClearIcon, searchReplaceAllIcon, searchReplaceIcon, searchRemoveIcon, searchStopIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; +import { ISearchConfiguration, VIEWLET_ID, VIEW_ID } from 'vs/workbench/services/search/common/search'; import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; -import { ThemeIcon } from 'vs/platform/theme/common/themeService'; -import { OpenSearchEditorArgs } from 'vs/workbench/contrib/searchEditor/browser/searchEditor.contribution'; -import { OpenEditorCommandId } from 'vs/workbench/contrib/searchEditor/browser/constants'; export function isSearchViewFocused(viewsService: IViewsService): boolean { const searchView = getSearchView(viewsService); @@ -289,227 +289,77 @@ export class ToggleSearchOnTypeAction extends Action { } } - -export class RefreshAction extends Action { - - static readonly ID: string = 'search.action.refreshSearchResults'; - static LABEL: string = nls.localize('RefreshAction.label', "Refresh"); - - constructor(id: string, label: string, - @IViewsService private readonly viewsService: IViewsService - ) { - super(id, label, 'search-action ' + ThemeIcon.asClassName(searchRefreshIcon)); - } - - get enabled(): boolean { - const searchView = getSearchView(this.viewsService); - return !!searchView && searchView.hasSearchPattern(); - } - - update(): void { - this._setEnabled(this.enabled); - } - - run(): Promise { - const searchView = getSearchView(this.viewsService); - if (searchView) { - searchView.triggerQueryChange({ preserveFocus: false }); - } - - return Promise.resolve(); +export function expandAll(accessor: ServicesAccessor) { + const viewsService = accessor.get(IViewsService); + const searchView = getSearchView(viewsService); + if (searchView) { + const viewer = searchView.getControl(); + viewer.expandAll(); + viewer.domFocus(); + viewer.focusFirst(); } } -export class CollapseDeepestExpandedLevelAction extends Action { - - static readonly ID: string = 'search.action.collapseSearchResults'; - static LABEL: string = nls.localize('CollapseDeepestExpandedLevelAction.label', "Collapse All"); - - constructor(id: string, label: string, - @IViewsService private readonly viewsService: IViewsService - ) { - super(id, label, 'search-action ' + ThemeIcon.asClassName(searchCollapseAllIcon)); - this.update(); +export function clearSearchResults(accessor: ServicesAccessor) { + const viewsService = accessor.get(IViewsService); + const searchView = getSearchView(viewsService); + if (searchView) { + searchView.clearSearchResults(); } +} - update(): void { - const searchView = getSearchView(this.viewsService); - this.enabled = !!searchView && searchView.hasSearchResults(); +export function cancelSearch(accessor: ServicesAccessor) { + const viewsService = accessor.get(IViewsService); + const searchView = getSearchView(viewsService); + if (searchView) { + searchView.cancelSearch(); } +} - run(): Promise { - const searchView = getSearchView(this.viewsService); - if (searchView) { - const viewer = searchView.getControl(); +export function refreshSearch(accessor: ServicesAccessor) { + const viewsService = accessor.get(IViewsService); + const searchView = getSearchView(viewsService); + if (searchView) { + searchView.triggerQueryChange({ preserveFocus: false }); + } +} - /** - * one level to collapse so collapse everything. If FolderMatch, check if there are visible grandchildren, - * i.e. if Matches are returned by the navigator, and if so, collapse to them, otherwise collapse all levels. - */ - const navigator = viewer.navigate(); - let node = navigator.first(); - let collapseFileMatchLevel = false; - if (node instanceof FolderMatch) { - while (node = navigator.next()) { - if (node instanceof Match) { - collapseFileMatchLevel = true; - break; - } +export function collapseDeepestExpandedLevel(accessor: ServicesAccessor) { + + const viewsService = accessor.get(IViewsService); + const searchView = getSearchView(viewsService); + if (searchView) { + const viewer = searchView.getControl(); + + /** + * one level to collapse so collapse everything. If FolderMatch, check if there are visible grandchildren, + * i.e. if Matches are returned by the navigator, and if so, collapse to them, otherwise collapse all levels. + */ + const navigator = viewer.navigate(); + let node = navigator.first(); + let collapseFileMatchLevel = false; + if (node instanceof FolderMatch) { + while (node = navigator.next()) { + if (node instanceof Match) { + collapseFileMatchLevel = true; + break; } } - - if (collapseFileMatchLevel) { - node = navigator.first(); - do { - if (node instanceof FileMatch) { - viewer.collapse(node); - } - } while (node = navigator.next()); - } else { - viewer.collapseAll(); - } - - viewer.domFocus(); - viewer.focusFirst(); } - return Promise.resolve(undefined); - } -} -export class ExpandAllAction extends Action { - - static readonly ID: string = 'search.action.expandSearchResults'; - static LABEL: string = nls.localize('ExpandAllAction.label', "Expand All"); - - constructor(id: string, label: string, - @IViewsService private readonly viewsService: IViewsService - ) { - super(id, label, 'search-action ' + ThemeIcon.asClassName(searchExpandAllIcon)); - this.update(); - } - - update(): void { - const searchView = getSearchView(this.viewsService); - this.enabled = !!searchView && searchView.hasSearchResults(); - } - - run(): Promise { - const searchView = getSearchView(this.viewsService); - if (searchView) { - const viewer = searchView.getControl(); - viewer.expandAll(); - viewer.domFocus(); - viewer.focusFirst(); - } - return Promise.resolve(undefined); - } -} - -export class ToggleCollapseAndExpandAction extends Action { - static readonly ID: string = 'search.action.collapseOrExpandSearchResults'; - static LABEL: string = nls.localize('ToggleCollapseAndExpandAction.label', "Toggle Collapse and Expand"); - - // Cache to keep from crawling the tree too often. - private action: CollapseDeepestExpandedLevelAction | ExpandAllAction | undefined; - - constructor(id: string, label: string, - private collapseAction: CollapseDeepestExpandedLevelAction, - private expandAction: ExpandAllAction, - @IViewsService private readonly viewsService: IViewsService - ) { - super(id, label, collapseAction.class); - this.update(); - } - - update(): void { - const searchView = getSearchView(this.viewsService); - this.enabled = !!searchView && searchView.hasSearchResults(); - this.onTreeCollapseStateChange(); - } - - onTreeCollapseStateChange() { - this.action = undefined; - this.determineAction(); - } - - private determineAction(): CollapseDeepestExpandedLevelAction | ExpandAllAction { - if (this.action !== undefined) { return this.action; } - this.action = this.isSomeCollapsible() ? this.collapseAction : this.expandAction; - this.class = this.action.class; - return this.action; - } - - private isSomeCollapsible(): boolean { - const searchView = getSearchView(this.viewsService); - if (searchView) { - const viewer = searchView.getControl(); - const navigator = viewer.navigate(); - let node = navigator.first(); + if (collapseFileMatchLevel) { + node = navigator.first(); do { - if (!viewer.isCollapsed(node)) { - return true; + if (node instanceof FileMatch) { + viewer.collapse(node); } } while (node = navigator.next()); - } - return false; - } - - - async run(): Promise { - await this.determineAction().run(); - } -} - -export class ClearSearchResultsAction extends Action { - - static readonly ID: string = 'search.action.clearSearchResults'; - static LABEL: string = nls.localize('ClearSearchResultsAction.label', "Clear Search Results"); - - constructor(id: string, label: string, - @IViewsService private readonly viewsService: IViewsService - ) { - super(id, label, 'search-action ' + ThemeIcon.asClassName(searchClearIcon)); - this.update(); - } - - update(): void { - const searchView = getSearchView(this.viewsService); - this.enabled = !!searchView && (!searchView.allSearchFieldsClear() || searchView.hasSearchResults() || !searchView.allFilePatternFieldsClear()); - } - - run(): Promise { - const searchView = getSearchView(this.viewsService); - if (searchView) { - searchView.clearSearchResults(); - } - return Promise.resolve(); - } -} - -export class CancelSearchAction extends Action { - - static readonly ID: string = 'search.action.cancelSearch'; - static LABEL: string = nls.localize('CancelSearchAction.label', "Cancel Search"); - - constructor(id: string, label: string, - @IViewsService private readonly viewsService: IViewsService - ) { - super(id, label, 'search-action ' + ThemeIcon.asClassName(searchStopIcon)); - this.update(); - } - - update(): void { - const searchView = getSearchView(this.viewsService); - this.enabled = !!searchView && searchView.isSlowSearch(); - } - - run(): Promise { - const searchView = getSearchView(this.viewsService); - if (searchView) { - searchView.cancelSearch(); + } else { + viewer.collapseAll(); } - return Promise.resolve(undefined); + viewer.domFocus(); + viewer.focusFirst(); } } diff --git a/src/vs/workbench/contrib/search/browser/searchView.ts b/src/vs/workbench/contrib/search/browser/searchView.ts index c1c16e601a1..4546b6151ab 100644 --- a/src/vs/workbench/contrib/search/browser/searchView.ts +++ b/src/vs/workbench/contrib/search/browser/searchView.ts @@ -8,9 +8,11 @@ import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import * as aria from 'vs/base/browser/ui/aria/aria'; import { MessageType } from 'vs/base/browser/ui/inputbox/inputBox'; import { IIdentityProvider } from 'vs/base/browser/ui/list/list'; +import { Orientation } from 'vs/base/browser/ui/sash/sash'; import { ITreeContextMenuEvent, ITreeElement } from 'vs/base/browser/ui/tree/tree'; -import { IAction, ActionRunner } from 'vs/base/common/actions'; +import { ActionRunner, IAction } from 'vs/base/common/actions'; import { Delayer } from 'vs/base/common/async'; +import { Color, RGBA } from 'vs/base/common/color'; import * as errors from 'vs/base/common/errors'; import { Event } from 'vs/base/common/event'; import { Iterable } from 'vs/base/common/iterator'; @@ -20,10 +22,13 @@ import * as env from 'vs/base/common/platform'; import * as strings from 'vs/base/common/strings'; import { URI } from 'vs/base/common/uri'; import 'vs/css!./media/searchview'; -import { ICodeEditor, isCodeEditor, isDiffEditor, getCodeEditor } from 'vs/editor/browser/editorBrowser'; +import { getCodeEditor, ICodeEditor, isCodeEditor, isDiffEditor } from 'vs/editor/browser/editorBrowser'; import { IEditorOptions } from 'vs/editor/common/config/editorOptions'; +import { Selection } from 'vs/editor/common/core/selection'; import { CommonFindController } from 'vs/editor/contrib/find/findController'; +import { MultiCursorSelectionController } from 'vs/editor/contrib/multicursor/multicursor'; import * as nls from 'vs/nls'; +import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; import { createAndFillInContextMenuActions } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { IMenu, IMenuService, MenuId } from 'vs/platform/actions/common/actions'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -32,53 +37,42 @@ import { IContextMenuService, IContextViewService } from 'vs/platform/contextvie import { IConfirmation, IDialogService } from 'vs/platform/dialogs/common/dialogs'; import { FileChangesEvent, FileChangeType, IFileService } from 'vs/platform/files/common/files'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { WorkbenchObjectTree, getSelectionKeyboardEvent } from 'vs/platform/list/browser/listService'; +import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; +import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; +import { getSelectionKeyboardEvent, WorkbenchObjectTree } from 'vs/platform/list/browser/listService'; import { INotificationService } from 'vs/platform/notification/common/notification'; -import { IProgressService, IProgressStep, IProgress } from 'vs/platform/progress/common/progress'; -import { IPatternInfo, ISearchComplete, ISearchConfiguration, ISearchConfigurationProperties, ITextQuery, SearchSortOrder, SearchCompletionExitCode } from 'vs/workbench/services/search/common/search'; -import { ISearchHistoryService, ISearchHistoryValues } from 'vs/workbench/contrib/search/common/searchHistoryService'; -import { diffInserted, diffInsertedOutline, diffRemoved, diffRemovedOutline, editorFindMatchHighlight, editorFindMatchHighlightBorder, listActiveSelectionForeground, foreground } from 'vs/platform/theme/common/colorRegistry'; -import { ICssStyleCollector, IColorTheme, IThemeService, registerThemingParticipant, ThemeIcon } from 'vs/platform/theme/common/themeService'; +import { IOpenerService } from 'vs/platform/opener/common/opener'; +import { IProgress, IProgressService, IProgressStep } from 'vs/platform/progress/common/progress'; +import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; +import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; +import { diffInserted, diffInsertedOutline, diffRemoved, diffRemovedOutline, editorFindMatchHighlight, editorFindMatchHighlightBorder, foreground, listActiveSelectionForeground } from 'vs/platform/theme/common/colorRegistry'; +import { IColorTheme, ICssStyleCollector, IThemeService, registerThemingParticipant, ThemeIcon } from 'vs/platform/theme/common/themeService'; import { IWorkspaceContextService, WorkbenchState } from 'vs/platform/workspace/common/workspace'; import { OpenFileFolderAction, OpenFolderAction } from 'vs/workbench/browser/actions/workspaceActions'; import { ResourceLabels } from 'vs/workbench/browser/labels'; +import { IViewPaneOptions, ViewPane } from 'vs/workbench/browser/parts/views/viewPane'; import { IEditorPane } from 'vs/workbench/common/editor'; +import { Memento, MementoObject } from 'vs/workbench/common/memento'; +import { IViewDescriptorService } from 'vs/workbench/common/views'; import { ExcludePatternInputWidget, PatternInputWidget } from 'vs/workbench/contrib/search/browser/patternInputWidget'; -import { CancelSearchAction, ClearSearchResultsAction, CollapseDeepestExpandedLevelAction, RefreshAction, IFindInFilesArgs, appendKeyBindingLabel, ExpandAllAction, ToggleCollapseAndExpandAction } from 'vs/workbench/contrib/search/browser/searchActions'; +import { appendKeyBindingLabel, IFindInFilesArgs } from 'vs/workbench/contrib/search/browser/searchActions'; +import { searchDetailsIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; import { FileMatchRenderer, FolderMatchRenderer, MatchRenderer, SearchAccessibilityProvider, SearchDelegate, SearchDND } from 'vs/workbench/contrib/search/browser/searchResultsView'; import { ISearchWidgetOptions, SearchWidget } from 'vs/workbench/contrib/search/browser/searchWidget'; import * as Constants from 'vs/workbench/contrib/search/common/constants'; import { ITextQueryBuilderOptions, QueryBuilder } from 'vs/workbench/contrib/search/common/queryBuilder'; import { IReplaceService } from 'vs/workbench/contrib/search/common/replace'; -import { getOutOfWorkspaceEditorResources } from 'vs/workbench/contrib/search/common/search'; -import { FileMatch, FileMatchOrMatch, IChangeEvent, ISearchWorkbenchService, Match, RenderableMatch, searchMatchComparer, SearchModel, SearchResult, FolderMatch, FolderMatchWithResource } from 'vs/workbench/contrib/search/common/searchModel'; +import { getOutOfWorkspaceEditorResources, SearchStateKey, SearchUIState } from 'vs/workbench/contrib/search/common/search'; +import { ISearchHistoryService, ISearchHistoryValues } from 'vs/workbench/contrib/search/common/searchHistoryService'; +import { FileMatch, FileMatchOrMatch, FolderMatch, FolderMatchWithResource, IChangeEvent, ISearchWorkbenchService, Match, RenderableMatch, searchMatchComparer, SearchModel, SearchResult } from 'vs/workbench/contrib/search/common/searchModel'; +import { createEditorFromSearchResult } from 'vs/workbench/contrib/searchEditor/browser/searchEditorActions'; import { ACTIVE_GROUP, IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; import { IPreferencesService, ISettingsEditorOptions } from 'vs/workbench/services/preferences/common/preferences'; +import { IPatternInfo, ISearchComplete, ISearchConfiguration, ISearchConfigurationProperties, ITextQuery, SearchCompletionExitCode, SearchSortOrder } from 'vs/workbench/services/search/common/search'; import { ITextFileService } from 'vs/workbench/services/textfile/common/textfiles'; -import { IAccessibilityService } from 'vs/platform/accessibility/common/accessibility'; -import { ViewPane, IViewPaneOptions } from 'vs/workbench/browser/parts/views/viewPane'; -import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; -import { Memento, MementoObject } from 'vs/workbench/common/memento'; -import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; -import { IOpenerService } from 'vs/platform/opener/common/opener'; -import { MultiCursorSelectionController } from 'vs/editor/contrib/multicursor/multicursor'; -import { Selection } from 'vs/editor/common/core/selection'; -import { Color, RGBA } from 'vs/base/common/color'; -import { IViewDescriptorService } from 'vs/workbench/common/views'; -import { OpenSearchEditorAction, createEditorFromSearchResult } from 'vs/workbench/contrib/searchEditor/browser/searchEditorActions'; -import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; -import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { Orientation } from 'vs/base/browser/ui/sash/sash'; -import { searchDetailsIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; const $ = dom.$; -enum SearchUIState { - Idle, - Searching, - SlowSearch -} - export enum SearchViewPosition { SideBar, Panel @@ -112,12 +106,12 @@ export class SearchView extends ViewPane { private hasSearchResultsKey: IContextKey; private lastFocusState: 'input' | 'tree' = 'input'; - private state: SearchUIState = SearchUIState.Idle; + private searchStateKey: IContextKey; + private hasSearchPatternKey: IContextKey; + private hasReplacePatternKey: IContextKey; + private hasFilePatternKey: IContextKey; + private hasSomeCollapsibleResultKey: IContextKey; - private actions: Array = []; - private toggleCollapseAction: ToggleCollapseAndExpandAction; - private cancelAction: CancelSearchAction; - private refreshAction: RefreshAction; private contextMenu: IMenu | null = null; private tree!: WorkbenchObjectTree; @@ -138,7 +132,6 @@ export class SearchView extends ViewPane { private delayedRefresh: Delayer; private changedWhileHidden: boolean = false; - private updatedActionsWhileHidden = false; private searchWithoutFolderMessageElement: HTMLElement | undefined; @@ -194,6 +187,11 @@ export class SearchView extends ViewPane { this.folderMatchFocused = Constants.FolderFocusKey.bindTo(this.contextKeyService); this.hasSearchResultsKey = Constants.HasSearchResults.bindTo(this.contextKeyService); this.matchFocused = Constants.MatchFocusKey.bindTo(this.contextKeyService); + this.searchStateKey = SearchStateKey.bindTo(this.contextKeyService); + this.hasSearchPatternKey = Constants.ViewHasSearchPatternKey.bindTo(this.contextKeyService); + this.hasReplacePatternKey = Constants.ViewHasReplacePatternKey.bindTo(this.contextKeyService); + this.hasFilePatternKey = Constants.ViewHasFilePatternKey.bindTo(this.contextKeyService); + this.hasSomeCollapsibleResultKey = Constants.ViewHasSomeCollapsibleKey.bindTo(this.contextKeyService); // scoped this.contextKeyService = this._register(this.contextKeyService.createScoped(this.container)); @@ -232,21 +230,24 @@ export class SearchView extends ViewPane { this.toggleCollapseStateDelayer = this._register(new Delayer(100)); this.triggerQueryDelayer = this._register(new Delayer(0)); - const collapseDeepestExpandedLevelAction = this.instantiationService.createInstance(CollapseDeepestExpandedLevelAction, CollapseDeepestExpandedLevelAction.ID, CollapseDeepestExpandedLevelAction.LABEL); - const expandAllAction = this.instantiationService.createInstance(ExpandAllAction, ExpandAllAction.ID, ExpandAllAction.LABEL); - - this.actions = [ - this._register(this.instantiationService.createInstance(ClearSearchResultsAction, ClearSearchResultsAction.ID, ClearSearchResultsAction.LABEL)), - this._register(this.instantiationService.createInstance(OpenSearchEditorAction, OpenSearchEditorAction.ID, OpenSearchEditorAction.LABEL)) - ]; - - this.refreshAction = this._register(this.instantiationService.createInstance(RefreshAction, RefreshAction.ID, RefreshAction.LABEL)); - this.cancelAction = this._register(this.instantiationService.createInstance(CancelSearchAction, CancelSearchAction.ID, CancelSearchAction.LABEL)); - this.toggleCollapseAction = this._register(this.instantiationService.createInstance(ToggleCollapseAndExpandAction, ToggleCollapseAndExpandAction.ID, ToggleCollapseAndExpandAction.LABEL, collapseDeepestExpandedLevelAction, expandAllAction)); - this.treeAccessibilityProvider = this.instantiationService.createInstance(SearchAccessibilityProvider, this.viewModel); } + private get state(): SearchUIState { + return this.searchStateKey.get() ?? SearchUIState.Idle; + } + + private set state(v: SearchUIState) { + this.searchStateKey.set(v); + } + + /** + * Exposed for openSearchEditor TODO@JacksonKearl + */ + getInstantiationService(): IInstantiationService { + return this.instantiationService; + } + getContainer(): HTMLElement { return this.container; } @@ -322,8 +323,7 @@ export class SearchView extends ViewPane { this.inputPatternIncludes.setValue(patternIncludes); - this.inputPatternIncludes.onSubmit(triggeredOnType => this.triggerQueryChange({ triggeredOnType, delay: this.searchConfig.searchOnTypeDebouncePeriod })); - this.inputPatternIncludes.onCancel(() => this.cancelSearch(false)); + this._register(this.inputPatternIncludes.onCancel(() => this.cancelSearch(false))); this.trackInputBox(this.inputPatternIncludes.inputFocusTracker, this.inputPatternIncludesFocused); // excludes list @@ -338,11 +338,21 @@ export class SearchView extends ViewPane { this.inputPatternExcludes.setValue(patternExclusions); this.inputPatternExcludes.setUseExcludesAndIgnoreFiles(useExcludesAndIgnoreFiles); - this.inputPatternExcludes.onSubmit(triggeredOnType => this.triggerQueryChange({ triggeredOnType, delay: this.searchConfig.searchOnTypeDebouncePeriod })); - this.inputPatternExcludes.onCancel(() => this.cancelSearch(false)); - this.inputPatternExcludes.onChangeIgnoreBox(() => this.triggerQueryChange()); + this._register(this.inputPatternExcludes.onCancel(() => this.cancelSearch(false))); + this._register(this.inputPatternExcludes.onChangeIgnoreBox(() => this.triggerQueryChange())); this.trackInputBox(this.inputPatternExcludes.inputFocusTracker, this.inputPatternExclusionsFocused); + const updateHasFilePatternKey = () => this.hasFilePatternKey.set(this.inputPatternIncludes.getValue().length > 0 || this.inputPatternExcludes.getValue().length > 0); + updateHasFilePatternKey(); + const onFilePatternSubmit = (triggeredOnType: boolean) => { + this.triggerQueryChange({ triggeredOnType, delay: this.searchConfig.searchOnTypeDebouncePeriod }); + if (triggeredOnType) { + updateHasFilePatternKey(); + } + }; + this._register(this.inputPatternIncludes.onSubmit(onFilePatternSubmit)); + this._register(this.inputPatternExcludes.onSubmit(onFilePatternSubmit)); + this.messagesElement = dom.append(this.container, $('.messages')); if (this.contextService.getWorkbenchState() === WorkbenchState.EMPTY) { this.showSearchWithoutFolderMessage(); @@ -356,9 +366,6 @@ export class SearchView extends ViewPane { this._register(this.viewModel.searchResult.onChange((event) => this.onSearchResultsChanged(event))); - this._register(this.searchWidget.searchInput.onInput(() => this.updateActions())); - this._register(this.searchWidget.replaceInput.onInput(() => this.updateActions())); - this._register(this.onDidChangeBodyVisibility(visible => this.onVisibilityChanged(visible))); } @@ -370,13 +377,6 @@ export class SearchView extends ViewPane { this.refreshAndUpdateCount(); this.changedWhileHidden = false; } - - if (this.updatedActionsWhileHidden) { - // The actions can only run or update their enablement when the view is visible, - // because they can only access the view when it's visible - this.updateActions(); - this.updatedActionsWhileHidden = false; - } } else { // Reset last focus to input to preserve opening the viewlet always focusing the query editor. this.lastFocusState = 'input'; @@ -400,25 +400,6 @@ export class SearchView extends ViewPane { return this.inputPatternExcludes; } - /** - * Warning: a bit expensive due to updating the view title - */ - protected updateActions(): void { - if (!this.isVisible()) { - this.updatedActionsWhileHidden = true; - } - - for (const action of this.actions) { - action.update(); - } - - this.refreshAction.update(); - this.cancelAction.update(); - this.toggleCollapseAction.update(); - - super.updateActions(); - } - private createSearchWidget(container: HTMLElement): void { const contentPattern = this.viewletState['query.contentPattern'] || ''; const replaceText = this.viewletState['query.replaceText'] || ''; @@ -450,6 +431,14 @@ export class SearchView extends ViewPane { this._register(this.searchWidget.onSearchCancel(({ focus }) => this.cancelSearch(focus))); this._register(this.searchWidget.searchInput.onDidOptionChange(() => this.triggerQueryChange())); + const updateHasPatternKey = () => this.hasSearchPatternKey.set(this.searchWidget.searchInput.getValue().length > 0); + updateHasPatternKey(); + this._register(this.searchWidget.searchInput.onDidChange(() => updateHasPatternKey())); + + const updateHasReplacePatternKey = () => this.hasReplacePatternKey.set(this.searchWidget.getReplaceValue().length > 0); + updateHasReplacePatternKey(); + this._register(this.searchWidget.replaceInput.inputBox.onDidChange(() => updateHasReplacePatternKey())); + this._register(this.searchWidget.onDidHeightChange(() => this.reLayout())); this._register(this.searchWidget.onReplaceToggled(() => this.reLayout())); @@ -729,9 +718,10 @@ export class SearchView extends ViewPane { } })); this._register(this.tree.onContextMenu(e => this.onContextMenu(e))); - this._register(this.tree.onDidChangeCollapseState(() => - this.toggleCollapseStateDelayer.trigger(() => this.toggleCollapseAction.onTreeCollapseStateChange()) - )); + const updateHasSomeCollapsible = () => this.toggleCollapseStateDelayer.trigger(() => this.hasSomeCollapsibleResultKey.set(this.hasSomeCollapsible())); + updateHasSomeCollapsible(); + this._register(this.viewModel.searchResult.onChange(() => updateHasSomeCollapsible())); + this._register(this.tree.onDidChangeCollapseState(() => updateHasSomeCollapsible())); this._register(Event.debounce(this.tree.onDidOpen, (last, event) => event, 75, true)(options => { if (options.element instanceof Match) { @@ -790,6 +780,19 @@ export class SearchView extends ViewPane { }); } + private hasSomeCollapsible(): boolean { + const viewer = this.getControl(); + const navigator = viewer.navigate(); + let node = navigator.first(); + do { + if (!viewer.isCollapsed(node)) { + return true; + } + } while (node = navigator.next()); + + return false; + } + selectNextMatch(): void { if (!this.hasSearchResults()) { return; @@ -1053,10 +1056,6 @@ export class SearchView extends ViewPane { return this.tree; } - isSlowSearch(): boolean { - return this.state === SearchUIState.SlowSearch; - } - allSearchFieldsClear(): boolean { return this.searchWidget.getReplaceValue() === '' && this.searchWidget.searchInput.getValue() === ''; @@ -1071,10 +1070,6 @@ export class SearchView extends ViewPane { return !this.viewModel.searchResult.isEmpty(); } - hasSearchPattern(): boolean { - return this.searchWidget && this.searchWidget.searchInput.getValue().length > 0; - } - clearSearchResults(clearInput = true): void { this.viewModel.searchResult.clear(); this.showEmptyStage(true); @@ -1088,7 +1083,6 @@ export class SearchView extends ViewPane { this.searchWidget.clear(); } this.viewModel.cancelSearch(); - this.updateActions(); this.tree.ariaLabel = nls.localize('emptySearch', "Empty Search"); aria.status(nls.localize('ariaSearchResultsClearStatus', "The search results have been cleared")); @@ -1415,7 +1409,6 @@ export class SearchView extends ViewPane { const slowTimer = setTimeout(() => { this.state = SearchUIState.SlowSearch; - this.updateActions(); }, 2000); const onComplete = (completed?: ISearchComplete) => { @@ -1438,9 +1431,7 @@ export class SearchView extends ViewPane { this.viewModel.replaceString = this.searchWidget.getReplaceValue(); - this.updateActions(); const hasResults = !this.viewModel.searchResult.isEmpty(); - if (completed?.exit === SearchCompletionExitCode.NewSearchStarted) { return; } @@ -1521,7 +1512,6 @@ export class SearchView extends ViewPane { if (errors.isPromiseCanceledError(e)) { return onComplete(undefined); } else { - this.updateActions(); progressComplete(); this.searchWidget.searchInput.showMessage({ content: e.message, type: MessageType.ERROR }); this.viewModel.searchResult.clear(); @@ -1532,8 +1522,6 @@ export class SearchView extends ViewPane { let visibleMatches = 0; - let updatedActionsForFileCount = false; - // Handle UI updates in an interval to show frequent progress and results const uiRefreshHandle: any = setInterval(() => { if (this.state === SearchUIState.Idle) { @@ -1547,11 +1535,6 @@ export class SearchView extends ViewPane { visibleMatches = fileCount; this.refreshAndUpdateCount(); } - - if (fileCount > 0 && !updatedActionsForFileCount) { - updatedActionsForFileCount = true; - this.updateActions(); - } }, 100); this.searchWidget.setReplaceAllActionState(false); @@ -1671,9 +1654,6 @@ export class SearchView extends ViewPane { } private showEmptyStage(forceHideMessages = false): void { - // disable 'result'-actions - this.updateActions(); - const showingCancelled = (this.messagesElement.firstChild?.textContent?.indexOf(SEARCH_CANCELLED_MESSAGE) ?? -1) > -1; // clean up ui @@ -1808,16 +1788,6 @@ export class SearchView extends ViewPane { } } - getActions(): IAction[] { - return [ - this.state === SearchUIState.SlowSearch ? - this.cancelAction : - this.refreshAction, - ...this.actions, - this.toggleCollapseAction - ]; - } - private get searchConfig(): ISearchConfigurationProperties { return this.configurationService.getValue('search'); } diff --git a/src/vs/workbench/contrib/search/common/constants.ts b/src/vs/workbench/contrib/search/common/constants.ts index 38e04a3de24..63c8976ea9d 100644 --- a/src/vs/workbench/contrib/search/common/constants.ts +++ b/src/vs/workbench/contrib/search/common/constants.ts @@ -11,7 +11,6 @@ export const FocusActiveEditorCommandId = 'search.action.focusActiveEditor'; export const FocusSearchFromResults = 'search.action.focusSearchFromResults'; export const OpenMatch = 'search.action.openResult'; export const OpenMatchToSide = 'search.action.openResultToSide'; -export const CancelActionId = 'search.action.cancel'; export const RemoveActionId = 'search.action.remove'; export const CopyPathCommandId = 'search.action.copyPath'; export const CopyMatchCommandId = 'search.action.copyMatch'; @@ -46,3 +45,7 @@ export const FileMatchOrFolderMatchWithResourceFocusKey = new RawContextKey('fileMatchFocus', false); export const FolderFocusKey = new RawContextKey('folderMatchFocus', false); export const MatchFocusKey = new RawContextKey('matchFocus', false); +export const ViewHasSearchPatternKey = new RawContextKey('viewHasSearchPattern', false); +export const ViewHasReplacePatternKey = new RawContextKey('viewHasReplacePattern', false); +export const ViewHasFilePatternKey = new RawContextKey('viewHasFilePattern', false); +export const ViewHasSomeCollapsibleKey = new RawContextKey('viewHasSomeCollapsibleResult', false); diff --git a/src/vs/workbench/contrib/search/common/search.ts b/src/vs/workbench/contrib/search/common/search.ts index c0e440eb323..1720c9fa277 100644 --- a/src/vs/workbench/contrib/search/common/search.ts +++ b/src/vs/workbench/contrib/search/common/search.ts @@ -16,6 +16,7 @@ import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation import { IFileService } from 'vs/platform/files/common/files'; import { IRange } from 'vs/editor/common/core/range'; import { isNumber } from 'vs/base/common/types'; +import { RawContextKey } from 'vs/platform/contextkey/common/contextkey'; export interface IWorkspaceSymbol { name: string; @@ -164,3 +165,11 @@ export function extractRangeFromFilter(filter: string, unless?: string[]): IFilt return undefined; } + +export enum SearchUIState { + Idle, + Searching, + SlowSearch +} + +export const SearchStateKey = new RawContextKey('searchState', SearchUIState.Idle); diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts index 44b8afd2708..047af4bc3cc 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditor.contribution.ts @@ -12,7 +12,7 @@ import { ToggleCaseSensitiveKeybinding, ToggleRegexKeybinding, ToggleWholeWordKe import { localize } from 'vs/nls'; import { Action2, MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; -import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; +import { ContextKeyEqualsExpr, ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; @@ -24,14 +24,15 @@ import { Extensions as WorkbenchExtensions, IWorkbenchContribution, IWorkbenchCo import { ActiveEditorContext, Extensions as EditorInputExtensions, IEditorInputFactory, IEditorInputFactoryRegistry } from 'vs/workbench/common/editor'; import { IViewsService } from 'vs/workbench/common/views'; import { getSearchView } from 'vs/workbench/contrib/search/browser/searchActions'; -import { searchRefreshIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; +import { searchNewEditorIcon, searchRefreshIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; import * as SearchConstants from 'vs/workbench/contrib/search/common/constants'; import * as SearchEditorConstants from 'vs/workbench/contrib/searchEditor/browser/constants'; import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor'; -import { createEditorFromSearchResult, modifySearchEditorContextLinesCommand, openNewSearchEditor, selectAllSearchEditorMatchesCommand, toggleSearchEditorCaseSensitiveCommand, toggleSearchEditorContextLinesCommand, toggleSearchEditorRegexCommand, toggleSearchEditorWholeWordCommand } from 'vs/workbench/contrib/searchEditor/browser/searchEditorActions'; +import { createEditorFromSearchResult, modifySearchEditorContextLinesCommand, openNewSearchEditor, openSearchEditor, selectAllSearchEditorMatchesCommand, toggleSearchEditorCaseSensitiveCommand, toggleSearchEditorContextLinesCommand, toggleSearchEditorRegexCommand, toggleSearchEditorWholeWordCommand } from 'vs/workbench/contrib/searchEditor/browser/searchEditorActions'; import { getOrMakeSearchEditorInput, SearchConfiguration, SearchEditorInput, SEARCH_EDITOR_EXT } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput'; import { parseSavedSearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditorSerialization'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; +import { VIEW_ID } from 'vs/workbench/services/search/common/search'; const OpenInEditorCommandId = 'search.action.openInEditor'; @@ -506,4 +507,25 @@ registerAction2(class extends Action2 { selectAllSearchEditorMatchesCommand(accessor); } }); + +registerAction2(class OpenSearchEditorAction extends Action2 { + constructor() { + super({ + id: SearchEditorConstants.OpenNewEditorCommandId, + title: localize('search.openNewEditor', "Open New Search Editor"), + category, + icon: searchNewEditorIcon, + f1: true, + menu: [{ + id: MenuId.ViewTitle, + group: 'navigation', + order: 2, + when: ContextKeyEqualsExpr.create('view', VIEW_ID), + }] + }); + } + run(accessor: ServicesAccessor, ...args: any[]) { + return openSearchEditor(accessor); + } +}); //#endregion diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts index ff5292c46c3..1cb5552de6c 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts @@ -3,34 +3,29 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Action } from 'vs/base/common/actions'; +import { Schemas } from 'vs/base/common/network'; +import { assertIsDefined, withNullAsUndefined } from 'vs/base/common/types'; import { URI } from 'vs/base/common/uri'; import 'vs/css!./media/searchEditor'; import { ICodeEditor, isDiffEditor } from 'vs/editor/browser/editorBrowser'; -import { localize } from 'vs/nls'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { ILabelService } from 'vs/platform/label/common/label'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { SearchResult } from 'vs/workbench/contrib/search/common/searchModel'; -import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor'; -import { getOrMakeSearchEditorInput, SearchEditorInput } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput'; -import { serializeSearchResultForEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditorSerialization'; -import { IEditorService, SIDE_GROUP, ACTIVE_GROUP } from 'vs/workbench/services/editor/common/editorService'; -import { ISearchConfigurationProperties } from 'vs/workbench/services/search/common/search'; -import { searchNewEditorIcon } from 'vs/workbench/contrib/search/browser/searchIcons'; -import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver'; import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; -import { IHistoryService } from 'vs/workbench/services/history/common/history'; -import { Schemas } from 'vs/base/common/network'; -import { withNullAsUndefined, assertIsDefined } from 'vs/base/common/types'; -import { OpenNewEditorCommandId } from 'vs/workbench/contrib/searchEditor/browser/constants'; -import { OpenSearchEditorArgs } from 'vs/workbench/contrib/searchEditor/browser/searchEditor.contribution'; import { EditorsOrder } from 'vs/workbench/common/editor'; -import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; -import { ThemeIcon } from 'vs/platform/theme/common/themeService'; import { IViewsService } from 'vs/workbench/common/views'; import { getSearchView } from 'vs/workbench/contrib/search/browser/searchActions'; +import { SearchResult } from 'vs/workbench/contrib/search/common/searchModel'; +import { SearchEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditor'; +import { OpenSearchEditorArgs } from 'vs/workbench/contrib/searchEditor/browser/searchEditor.contribution'; +import { getOrMakeSearchEditorInput, SearchEditorInput } from 'vs/workbench/contrib/searchEditor/browser/searchEditorInput'; +import { serializeSearchResultForEditor } from 'vs/workbench/contrib/searchEditor/browser/searchEditorSerialization'; +import { IConfigurationResolverService } from 'vs/workbench/services/configurationResolver/common/configurationResolver'; +import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; +import { ACTIVE_GROUP, IEditorService, SIDE_GROUP } from 'vs/workbench/services/editor/common/editorService'; +import { IHistoryService } from 'vs/workbench/services/history/common/history'; +import { ISearchConfigurationProperties } from 'vs/workbench/services/search/common/search'; export const toggleSearchEditorCaseSensitiveCommand = (accessor: ServicesAccessor) => { const editorService = accessor.get(IEditorService); @@ -80,41 +75,23 @@ export const selectAllSearchEditorMatchesCommand = (accessor: ServicesAccessor) } }; -// Handler for the action bar entry in the search view. -export class OpenSearchEditorAction extends Action { - static readonly ID: string = OpenNewEditorCommandId; - static readonly LABEL = localize('search.openNewEditor', "Open New Search Editor"); - - constructor(id: string, label: string, - @IInstantiationService private readonly instantiationService: IInstantiationService, - @IViewsService private readonly viewsService: IViewsService, - ) { - super(id, label, ThemeIcon.asClassName(searchNewEditorIcon)); - } - - update() { - // pass - } - - get enabled(): boolean { - return true; - } - - async run() { - const searchView = getSearchView(this.viewsService); - if (searchView) { - await this.instantiationService.invokeFunction(openNewSearchEditor, { - filesToInclude: searchView.searchIncludePattern.getValue(), - filesToExclude: searchView.searchExcludePattern.getValue(), - isRegexp: searchView.searchAndReplaceWidget.searchInput.getRegex(), - isCaseSensitive: searchView.searchAndReplaceWidget.searchInput.getCaseSensitive(), - matchWholeWord: searchView.searchAndReplaceWidget.searchInput.getWholeWords(), - useExcludeSettingsAndIgnoreFiles: searchView.searchExcludePattern.useExcludesAndIgnoreFiles(), - showIncludesExcludes: !!(searchView.searchIncludePattern.getValue() || searchView.searchExcludePattern.getValue() || !searchView.searchExcludePattern.useExcludesAndIgnoreFiles()) - }); - } else { - await this.instantiationService.invokeFunction(openNewSearchEditor); - } +export async function openSearchEditor(accessor: ServicesAccessor): Promise { + const viewsService = accessor.get(IViewsService); + const searchView = getSearchView(viewsService); + if (searchView) { + const instantiationService = searchView.getInstantiationService(); + await instantiationService.invokeFunction(openNewSearchEditor, { + filesToInclude: searchView.searchIncludePattern.getValue(), + filesToExclude: searchView.searchExcludePattern.getValue(), + isRegexp: searchView.searchAndReplaceWidget.searchInput.getRegex(), + isCaseSensitive: searchView.searchAndReplaceWidget.searchInput.getCaseSensitive(), + matchWholeWord: searchView.searchAndReplaceWidget.searchInput.getWholeWords(), + useExcludeSettingsAndIgnoreFiles: searchView.searchExcludePattern.useExcludesAndIgnoreFiles(), + showIncludesExcludes: !!(searchView.searchIncludePattern.getValue() || searchView.searchExcludePattern.getValue() || !searchView.searchExcludePattern.useExcludesAndIgnoreFiles()) + }); + } else { + const instantiationService = accessor.get(IInstantiationService); + await instantiationService.invokeFunction(openNewSearchEditor); } } From 67c889e39416c958fc7cb84e4814df2225c22852 Mon Sep 17 00:00:00 2001 From: SteVen Batten <6561887+sbatten@users.noreply.github.com> Date: Thu, 14 Jan 2021 16:45:41 -0800 Subject: [PATCH 071/171] Merge and restructure menu (#114383) * move home menu into compact menu * add web app icon to titlebar * add TODO --- .../parts/activitybar/activitybarPart.ts | 3 +- .../parts/titlebar/media/titlebarpart.css | 25 +++++++- .../browser/parts/titlebar/menubarControl.ts | 60 +++++++++++++++++-- .../browser/parts/titlebar/titlebarPart.ts | 34 ++++++++++- .../parts/titlebar/titlebarPart.ts | 4 +- 5 files changed, 115 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index 546ac57e232..af45b2bd3de 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -487,7 +487,8 @@ export class ActivitybarPart extends Part implements IActivityBarService { // Home action bar const homeIndicator = this.environmentService.options?.homeIndicator; - if (homeIndicator) { + // TODO @sbatten remove the fake setting and associated code + if (homeIndicator && this.configurationService.getValue('window.showHomeIndicator')) { let codicon = iconRegistry.get(homeIndicator.icon); if (!codicon) { codicon = Codicon.code; diff --git a/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css b/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css index a4c34e45041..7ac774cb7c6 100644 --- a/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css +++ b/src/vs/workbench/browser/parts/titlebar/media/titlebarpart.css @@ -85,11 +85,34 @@ height: 100%; position: relative; z-index: 3000; + flex-shrink: 0; +} + +.monaco-workbench .part.titlebar > .window-appicon:not(.codicon) { background-image: url('../../../media/code-icon.svg'); background-repeat: no-repeat; background-position: center center; background-size: 16px; - flex-shrink: 0; +} + +.monaco-workbench .part.titlebar .window-appicon > .home-bar-icon-badge { + position: absolute; + right: 9px; + bottom: 6px; + width: 8px; + height: 8px; + z-index: 1; /* on top of home indicator */ + background-image: url('../../../media/code-icon.svg'); + background-repeat: no-repeat; + background-position: center center; + background-size: 8px; + pointer-events: none; + border-top: 1px solid transparent; + border-left: 1px solid transparent; +} + +.monaco-workbench .part.titlebar > .window-appicon.codicon { + line-height: 30px; } .monaco-workbench.fullscreen .part.titlebar > .window-appicon { diff --git a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts index 98fc256def0..67798d8844b 100644 --- a/src/vs/workbench/browser/parts/titlebar/menubarControl.ts +++ b/src/vs/workbench/browser/parts/titlebar/menubarControl.ts @@ -4,11 +4,11 @@ *--------------------------------------------------------------------------------------------*/ import * as nls from 'vs/nls'; -import { IMenuService, MenuId, IMenu, SubmenuItemAction, registerAction2, Action2 } from 'vs/platform/actions/common/actions'; +import { IMenuService, MenuId, IMenu, SubmenuItemAction, registerAction2, Action2, MenuRegistry, MenuItemAction } from 'vs/platform/actions/common/actions'; import { registerThemingParticipant, IThemeService } from 'vs/platform/theme/common/themeService'; import { MenuBarVisibility, getTitleBarStyle, IWindowOpenable, getMenuBarVisibility } from 'vs/platform/windows/common/windows'; -import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; -import { IAction, Action, SubmenuAction, Separator } from 'vs/base/common/actions'; +import { ContextKeyExpr, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; +import { IAction, Action, SubmenuAction, Separator, toAction } from 'vs/base/common/actions'; import * as DOM from 'vs/base/browser/dom'; import { IKeybindingService } from 'vs/platform/keybinding/common/keybinding'; import { isMacintosh, isWeb, isIOS, isNative } from 'vs/base/common/platform'; @@ -326,6 +326,16 @@ export class CustomMenubarControl extends MenubarControl { this.registerActions(); + // Register web menu actions to the file menu when its in the title + this.getWebNavigationMenuItemActions().forEach(actionItem => { + this._register(MenuRegistry.appendMenuItem(MenuId.MenubarFileMenu, { + command: actionItem.item, + title: actionItem.item.title, + group: 'z_Web', + when: ContextKeyExpr.and(IsWebContext, ContextKeyExpr.notEquals('config.window.menuBarVisibility', 'compact')) + })); + }); + registerThemingParticipant((theme, collector) => { const menubarActiveWindowFgColor = theme.getColor(TITLE_BAR_ACTIVE_FOREGROUND); if (menubarActiveWindowFgColor) { @@ -662,6 +672,27 @@ export class CustomMenubarControl extends MenubarControl { } } + private getWebNavigationMenuItemActions(): MenuItemAction[] { + if (!isWeb) { + return []; // only for web + } + + const webNavigationActions = []; + const webNavigationMenu = this.menuService.createMenu(MenuId.MenubarHomeMenu, this.contextKeyService); + for (const groups of webNavigationMenu.getActions()) { + const [, actions] = groups; + for (const action of actions) { + if (action instanceof MenuItemAction) { + webNavigationActions.push(action); + } + } + } + + webNavigationMenu.dispose(); + + return webNavigationActions; + } + private getMenuBarOptions(): IMenuBarOptions { return { enableMnemonics: this.currentEnableMenuBarMnemonics, @@ -669,7 +700,28 @@ export class CustomMenubarControl extends MenubarControl { visibility: this.currentMenubarVisibility, getKeybinding: (action) => this.keybindingService.lookupKeybinding(action.id), alwaysOnMnemonics: this.alwaysOnMnemonics, - compactMode: this.currentCompactMenuMode + compactMode: this.currentCompactMenuMode, + getCompactMenuActions: () => { + if (!isWeb) { + return []; // only for web + } + + const webNavigationActions: IAction[] = []; + const href = this.environmentService.options?.homeIndicator?.href; + if (href) { + webNavigationActions.push(toAction({ id: 'goHome', label: nls.localize('goHome', "Go Home"), run: () => window.location.href = href })); + } + + const otherActions = this.getWebNavigationMenuItemActions().map(action => { + const title = typeof action.item.title === 'string' + ? action.item.title + : action.item.title.mnemonicTitle ?? action.item.title.value; + return new Action(action.id, mnemonicMenuLabel(title), action.class, action.enabled, () => this.commandService.executeCommand(action.id)); + }); + + webNavigationActions.push(...otherActions); + return webNavigationActions; + } }; } diff --git a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts index d443d4895ea..52a1f2f4597 100644 --- a/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts +++ b/src/vs/workbench/browser/parts/titlebar/titlebarPart.ts @@ -25,7 +25,7 @@ import { isMacintosh, isWindows, isLinux, isWeb } from 'vs/base/common/platform' import { URI } from 'vs/base/common/uri'; import { Color } from 'vs/base/common/color'; import { trim } from 'vs/base/common/strings'; -import { EventType, EventHelper, Dimension, isAncestor, append, $, addDisposableListener, runAtThisOrScheduleAtNextAnimationFrame } from 'vs/base/browser/dom'; +import { EventType, EventHelper, Dimension, isAncestor, append, $, addDisposableListener, runAtThisOrScheduleAtNextAnimationFrame, prepend } from 'vs/base/browser/dom'; import { CustomMenubarControl } from 'vs/workbench/browser/parts/titlebar/menubarControl'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { template } from 'vs/base/common/labels'; @@ -41,6 +41,7 @@ import { IHostService } from 'vs/workbench/services/host/browser/host'; import { IProductService } from 'vs/platform/product/common/productService'; import { Schemas } from 'vs/base/common/network'; import { withNullAsUndefined } from 'vs/base/common/types'; +import { Codicon, iconRegistry } from 'vs/base/common/codicons'; export class TitlebarPart extends Part implements ITitleService { @@ -65,6 +66,8 @@ export class TitlebarPart extends Part implements ITitleService { protected title!: HTMLElement; protected customMenubar: CustomMenubarControl | undefined; + protected appIcon: HTMLElement | undefined; + private appIconBadge: HTMLElement | undefined; protected menubar?: HTMLElement; protected lastLayoutDimensions: Dimension | undefined; private titleBarStyle: 'native' | 'custom'; @@ -341,6 +344,28 @@ export class TitlebarPart extends Part implements ITitleService { createContentArea(parent: HTMLElement): HTMLElement { this.element = parent; + // App Icon (Native Windows/Linux and Web) + if (!isMacintosh || isWeb) { + this.appIcon = prepend(this.element, $('a.window-appicon')); + + // Web-only home indicator and menu + if (isWeb) { + const homeIndicator = this.environmentService.options?.homeIndicator; + if (homeIndicator) { + let codicon = iconRegistry.get(homeIndicator.icon); + if (!codicon) { + codicon = Codicon.code; + } + + this.appIcon.setAttribute('href', homeIndicator.href); + this.appIcon.classList.add(...codicon.classNamesArray); + this.appIconBadge = document.createElement('div'); + this.appIconBadge.classList.add('home-bar-icon-badge'); + this.appIcon.appendChild(this.appIconBadge); + } + } + } + // Menubar: install a custom menu bar depending on configuration // and when not in activity bar if (this.titleBarStyle !== 'native' @@ -407,6 +432,11 @@ export class TitlebarPart extends Part implements ITitleService { return color.isOpaque() ? color : color.makeOpaque(WORKBENCH_BACKGROUND(theme)); }) || ''; this.element.style.backgroundColor = titleBackground; + + if (this.appIconBadge) { + this.appIconBadge.style.backgroundColor = titleBackground; + } + if (titleBackground && Color.fromHex(titleBackground).isLighter()) { this.element.classList.add('light'); } else { @@ -441,7 +471,7 @@ export class TitlebarPart extends Part implements ITitleService { protected adjustTitleMarginToCenter(): void { if (this.customMenubar && this.menubar) { - const leftMarker = this.menubar.clientWidth + 10; + const leftMarker = (this.appIcon ? this.appIcon.clientWidth : 0) + this.menubar.clientWidth + 10; const rightMarker = this.element.clientWidth - 10; // Not enough space to center the titlebar within window, diff --git a/src/vs/workbench/electron-sandbox/parts/titlebar/titlebarPart.ts b/src/vs/workbench/electron-sandbox/parts/titlebar/titlebarPart.ts index fb48aeb713d..c2258de1123 100644 --- a/src/vs/workbench/electron-sandbox/parts/titlebar/titlebarPart.ts +++ b/src/vs/workbench/electron-sandbox/parts/titlebar/titlebarPart.ts @@ -27,7 +27,6 @@ import { Codicon } from 'vs/base/common/codicons'; import { NativeMenubarControl } from 'vs/workbench/electron-sandbox/parts/titlebar/menubarControl'; export class TitlebarPart extends BrowserTitleBarPart { - private appIcon: HTMLElement | undefined; private windowControls: HTMLElement | undefined; private maxRestoreControl: HTMLElement | undefined; private dragRegion: HTMLElement | undefined; @@ -171,8 +170,7 @@ export class TitlebarPart extends BrowserTitleBarPart { } // App Icon (Native Windows/Linux) - if (!isMacintosh) { - this.appIcon = DOM.prepend(this.element, DOM.$('div.window-appicon')); + if (this.appIcon) { this.onUpdateAppIconDragBehavior(); this._register(DOM.addDisposableListener(this.appIcon, DOM.EventType.DBLCLICK, (e => { From a590d4fac365bd3f9293fb0b025726a36f0a8c9f Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 14 Jan 2021 16:56:44 -0800 Subject: [PATCH 072/171] Only show "Open in VSCode..." when isWeb. --- .../services/gettingStarted/common/gettingStartedContent.ts | 1 + 1 file changed, 1 insertion(+) diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index 8a02ecc09dc..22a395c1815 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -99,6 +99,7 @@ export const content: GettingStartedContent = [ title: localize('gettingStarted.openVSC.button', "Open in VS Code"), command: 'github.codespaces.openInStable' }, + when: 'isWeb', doneOn: { commandExecuted: 'github.codespaces.openInStable' }, media: { type: 'image', altText: 'Preview of the Open in VS Code command.', path: 'openVSC.jpg' }, } From cc5e8b22faf55984a7751e6776dbea63d88a6dcf Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 14 Jan 2021 16:33:02 -0800 Subject: [PATCH 073/171] Continue work on url opener api For #109277 - Add `option` opener priority. This means the oper will only be shown if requested but will not replace the default opener - Persist registered openers for IntelliSense suggestions --- extensions/simple-browser/README.md | 5 ++ extensions/simple-browser/package.json | 6 -- extensions/simple-browser/package.nls.json | 3 +- extensions/simple-browser/src/extension.ts | 11 ++- src/vs/editor/common/modes.ts | 9 +- src/vs/vscode.proposed.d.ts | 45 ++++++---- .../api/browser/mainThreadUriOpeners.ts | 10 ++- .../workbench/api/common/extHost.api.impl.ts | 6 +- .../workbench/api/common/extHost.protocol.ts | 2 +- src/vs/workbench/api/common/extHostTypes.ts | 9 +- .../workbench/api/common/extHostUriOpener.ts | 7 +- .../externalUriOpener/common/configuration.ts | 13 ++- .../common/contributedOpeners.ts | 88 +++++++++++++++++++ .../common/externalUriOpenerService.ts | 35 +++++--- .../common/externalUriOpenerService.test.ts | 10 +-- 15 files changed, 191 insertions(+), 68 deletions(-) create mode 100644 src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts diff --git a/extensions/simple-browser/README.md b/extensions/simple-browser/README.md index 5cc65e7b19a..42a681dfc2e 100644 --- a/extensions/simple-browser/README.md +++ b/extensions/simple-browser/README.md @@ -1,3 +1,8 @@ # Simple Browser files **Notice:** This extension is bundled with Visual Studio Code. It can be disabled but not uninstalled. + + +a $a + b = c$ b + +a $\pm\sqrt{a^2 + b^2}$ b diff --git a/extensions/simple-browser/package.json b/extensions/simple-browser/package.json index 9982f6c7d12..d93645f13c0 100644 --- a/extensions/simple-browser/package.json +++ b/extensions/simple-browser/package.json @@ -39,12 +39,6 @@ "default": true, "title": "Focus Lock Indicator Enabled", "description": "%configuration.focusLockIndicator.enabled.description%" - }, - "simpleBrowser.opener.enabled": { - "type": "boolean", - "default": false, - "title": "Opener Enabled", - "description": "%configuration.opener.enabled.description%" } } } diff --git a/extensions/simple-browser/package.nls.json b/extensions/simple-browser/package.nls.json index 6c34681a480..05136be16fe 100644 --- a/extensions/simple-browser/package.nls.json +++ b/extensions/simple-browser/package.nls.json @@ -2,6 +2,5 @@ "displayName": "Simple Browser", "description": "A very basic built-in webview for displaying web content.", "configuration.focusLockIndicator.enabled.description": "Enable/disable ", - "configuration.opener.enabled.description": "(Experimental) Enables using the built-in simple browser when opening http and https urls.", - "configuration.opener.enabledHosts.description": "Lists of hosts to open in the simple browser. For example: `localhost`." + "configuration.opener.enabled.description": "(Experimental) Enables using the built-in simple browser when opening http and https urls." } diff --git a/extensions/simple-browser/src/extension.ts b/extensions/simple-browser/src/extension.ts index 7274a7343b7..9e645667153 100644 --- a/extensions/simple-browser/src/extension.ts +++ b/extensions/simple-browser/src/extension.ts @@ -45,27 +45,26 @@ export function activate(context: vscode.ExtensionContext) { manager.show(url.toString(), showOptions); })); - context.subscriptions.push(vscode.window.registerExternalUriOpener(['http', 'https'], { + context.subscriptions.push(vscode.window.registerExternalUriOpener(openerId, ['http', 'https'], { canOpenExternalUri(uri: vscode.Uri) { const configuration = vscode.workspace.getConfiguration('simpleBrowser'); if (!configuration.get('opener.enabled', false)) { - return vscode.ExternalUriOpenerEnablement.Disabled; + return vscode.ExternalUriOpenerPriority.None; } const originalUri = new URL(uri.toString()); if (enabledHosts.has(originalUri.hostname)) { return isWeb() - ? vscode.ExternalUriOpenerEnablement.Preferred - : vscode.ExternalUriOpenerEnablement.Enabled; + ? vscode.ExternalUriOpenerPriority.Preferred + : vscode.ExternalUriOpenerPriority.Option; } - return vscode.ExternalUriOpenerEnablement.Disabled; + return vscode.ExternalUriOpenerPriority.None; }, openExternalUri(resolveUri: vscode.Uri) { return manager.show(resolveUri.toString()); } }, { - id: openerId, label: localize('openTitle', "Open in simple browser"), })); } diff --git a/src/vs/editor/common/modes.ts b/src/vs/editor/common/modes.ts index 35b306d602f..b0ddffe0e42 100644 --- a/src/vs/editor/common/modes.ts +++ b/src/vs/editor/common/modes.ts @@ -1881,8 +1881,9 @@ export const TokenizationRegistry = new TokenizationRegistryImpl(); /** * @internal */ -export enum ExternalUriOpenerEnablement { - Disabled, - Enabled, - Preferred +export enum ExternalUriOpenerPriority { + None = 0, + Option = 1, + Default = 2, + Preferred = 3, } diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 0b792160eab..59df165ca02 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -2294,21 +2294,39 @@ declare module 'vscode' { //#region Opener service (https://github.com/microsoft/vscode/issues/109277) - export enum ExternalUriOpenerEnablement { + export enum ExternalUriOpenerPriority { /** - * The opener cannot handle the uri. + * The opener is disabled and will not be shown to users. + * + * Note that the opener can still be used if the user + * specifically configures it in their settings. */ - Disabled = 0, + None = 0, /** - * The opener can handle the uri. + * The opener can open the uri but will not be shown by default when a + * user clicks on the uri. + * + * If only optional openers are enabled, then VS Code's default opener + * will be automatically used. */ - Enabled = 1, + Option = 1, /** - * The opener can handle the uri and should be automatically selected if possible. + * The opener can open the uri. + * + * When the user clicks on a uri, they will be prompted to select the opener + * they wish to use for it. */ - Preferred = 2 + Default = 2, + + /** + * The opener can open the uri and should be automatically selected if possible. + * + * Preferred openers will be automatically selected if no other preferred openers + * are available. + */ + Preferred = 3, } /** @@ -2330,7 +2348,7 @@ declare module 'vscode' { * * @return If the opener can open the external uri. */ - canOpenExternalUri(uri: Uri, token: CancellationToken): ProviderResult; + canOpenExternalUri(uri: Uri, token: CancellationToken): ExternalUriOpenerPriority | Thenable; /** * Open the given uri. @@ -2368,12 +2386,6 @@ declare module 'vscode' { * Additional metadata about the registered opener. */ interface ExternalUriOpenerMetadata { - /** - * Unique id of the opener, such as `myExtension.browserPreview` - * - * This is used in settings and commands to identifier the opener. - */ - readonly id: string; /** * Text displayed to the user that explains what the opener does. @@ -2389,13 +2401,16 @@ declare module 'vscode' { * * When a uri is about to be opened, an `onUriOpen:SCHEME` activation event is fired. * + * @param id Unique id of the opener, such as `myExtension.browserPreview`. This is used in settings + * and commands to identify the opener. * @param schemes List of uri schemes the opener is triggered for. Currently only `http` * and `https` are supported. * @param opener Opener to register. + * @param metadata Additional information about the opener. * * @returns Disposable that unregisters the opener. */ - export function registerExternalUriOpener(schemes: readonly string[], opener: ExternalUriOpener, metadata: ExternalUriOpenerMetadata): Disposable; + export function registerExternalUriOpener(id: string, schemes: readonly string[], opener: ExternalUriOpener, metadata: ExternalUriOpenerMetadata): Disposable; } //#endregion diff --git a/src/vs/workbench/api/browser/mainThreadUriOpeners.ts b/src/vs/workbench/api/browser/mainThreadUriOpeners.ts index 99e26769eb0..c4c5c42bbb0 100644 --- a/src/vs/workbench/api/browser/mainThreadUriOpeners.ts +++ b/src/vs/workbench/api/browser/mainThreadUriOpeners.ts @@ -10,8 +10,9 @@ import { URI } from 'vs/base/common/uri'; import { localize } from 'vs/nls'; import { ExtensionIdentifier } from 'vs/platform/extensions/common/extensions'; import { INotificationService } from 'vs/platform/notification/common/notification'; +import { IStorageService } from 'vs/platform/storage/common/storage'; import { ExtHostContext, ExtHostUriOpenersShape, IExtHostContext, MainContext, MainThreadUriOpenersShape } from 'vs/workbench/api/common/extHost.protocol'; -import { externalUriOpenerIdSchemaAddition } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; +import { ContributedExternalUriOpenersStore } from 'vs/workbench/contrib/externalUriOpener/common/contributedOpeners'; import { IExternalOpenerProvider, IExternalUriOpener, IExternalUriOpenerService } from 'vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { extHostNamedCustomer } from '../common/extHostCustomers'; @@ -27,9 +28,11 @@ export class MainThreadUriOpeners extends Disposable implements MainThreadUriOpe private readonly proxy: ExtHostUriOpenersShape; private readonly _registeredOpeners = new Map(); + private readonly _contributedExternalUriOpenersStore: ContributedExternalUriOpenersStore; constructor( context: IExtHostContext, + @IStorageService storageService: IStorageService, @IExternalUriOpenerService externalUriOpenerService: IExternalUriOpenerService, @IExtensionService private readonly extensionService: IExtensionService, @INotificationService private readonly notificationService: INotificationService, @@ -38,6 +41,8 @@ export class MainThreadUriOpeners extends Disposable implements MainThreadUriOpe this.proxy = context.getProxy(ExtHostContext.ExtHostUriOpeners); this._register(externalUriOpenerService.registerExternalOpenerProvider(this)); + + this._contributedExternalUriOpenersStore = this._register(new ContributedExternalUriOpenersStore(storageService, extensionService)); } public async *getOpeners(targetUri: URI): AsyncIterable { @@ -92,11 +97,12 @@ export class MainThreadUriOpeners extends Disposable implements MainThreadUriOpe extensionId, }); - externalUriOpenerIdSchemaAddition.enum?.push(id); + this._contributedExternalUriOpenersStore.add(id, extensionId.value); } async $unregisterUriOpener(id: string): Promise { this._registeredOpeners.delete(id); + this._contributedExternalUriOpenersStore.delete(id); } dispose(): void { diff --git a/src/vs/workbench/api/common/extHost.api.impl.ts b/src/vs/workbench/api/common/extHost.api.impl.ts index 232d2734fd9..8f271b937f9 100644 --- a/src/vs/workbench/api/common/extHost.api.impl.ts +++ b/src/vs/workbench/api/common/extHost.api.impl.ts @@ -672,9 +672,9 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I checkProposedApiEnabled(extension); return extHostNotebook.showNotebookDocument(document, options); }, - registerExternalUriOpener(schemes: readonly string[], opener: vscode.ExternalUriOpener, metadata: vscode.ExternalUriOpenerMetadata) { + registerExternalUriOpener(id: string, schemes: readonly string[], opener: vscode.ExternalUriOpener, metadata: vscode.ExternalUriOpenerMetadata) { checkProposedApiEnabled(extension); - return extHostUriOpeners.registerUriOpener(extension.identifier, schemes, opener, metadata); + return extHostUriOpeners.registerUriOpener(extension.identifier, id, schemes, opener, metadata); }, }; @@ -1133,7 +1133,7 @@ export function createApiFactoryAndRegisterActors(accessor: ServicesAccessor): I EventEmitter: Emitter, ExtensionKind: extHostTypes.ExtensionKind, ExtensionMode: extHostTypes.ExtensionMode, - ExternalUriOpenerEnablement: extHostTypes.ExternalUriOpenerEnablement, + ExternalUriOpenerPriority: extHostTypes.ExternalUriOpenerPriority, FileChangeType: extHostTypes.FileChangeType, FileDecoration: extHostTypes.FileDecoration, FileSystemError: extHostTypes.FileSystemError, diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 4f24459ce50..34618fde866 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -808,7 +808,7 @@ export interface MainThreadUriOpenersShape extends IDisposable { } export interface ExtHostUriOpenersShape { - $canOpenUri(id: string, uri: UriComponents, token: CancellationToken): Promise; + $canOpenUri(id: string, uri: UriComponents, token: CancellationToken): Promise; $openUri(id: string, context: { resolvedUri: UriComponents, sourceUri: UriComponents }, token: CancellationToken): Promise; } diff --git a/src/vs/workbench/api/common/extHostTypes.ts b/src/vs/workbench/api/common/extHostTypes.ts index fbd6592c661..9513d3047ff 100644 --- a/src/vs/workbench/api/common/extHostTypes.ts +++ b/src/vs/workbench/api/common/extHostTypes.ts @@ -2978,8 +2978,9 @@ export type RequiredTestItem = { //#endregion -export enum ExternalUriOpenerEnablement { - Disabled = 0, - Enabled = 1, - Preferred = 2 +export enum ExternalUriOpenerPriority { + None = 0, + Option = 1, + Default = 2, + Preferred = 3, } diff --git a/src/vs/workbench/api/common/extHostUriOpener.ts b/src/vs/workbench/api/common/extHostUriOpener.ts index eaaaca2088d..30612009743 100644 --- a/src/vs/workbench/api/common/extHostUriOpener.ts +++ b/src/vs/workbench/api/common/extHostUriOpener.ts @@ -32,11 +32,11 @@ export class ExtHostUriOpeners implements ExtHostUriOpenersShape { registerUriOpener( extensionId: ExtensionIdentifier, + id: string, schemes: readonly string[], opener: vscode.ExternalUriOpener, metadata: vscode.ExternalUriOpenerMetadata, ): vscode.Disposable { - const id = metadata.id; if (this._openers.has(id)) { throw new Error(`Opener with id already registered: '${id}'`); } @@ -55,15 +55,14 @@ export class ExtHostUriOpeners implements ExtHostUriOpenersShape { }); } - async $canOpenUri(id: string, uriComponents: UriComponents, token: CancellationToken): Promise { + async $canOpenUri(id: string, uriComponents: UriComponents, token: CancellationToken): Promise { const entry = this._openers.get(id); if (!entry) { throw new Error(`Unknown opener with id: ${id}`); } const uri = URI.revive(uriComponents); - const result = await entry.opener.canOpenExternalUri(uri, token); - return result ? result : modes.ExternalUriOpenerEnablement.Disabled; + return entry.opener.canOpenExternalUri(uri, token); } async $openUri(id: string, context: { resolvedUri: UriComponents, sourceUri: UriComponents }, token: CancellationToken): Promise { diff --git a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts index fcd27ca5263..bed2f5e7d76 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts @@ -3,10 +3,11 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { IConfigurationNode } from 'vs/platform/configuration/common/configurationRegistry'; +import { IConfigurationNode, IConfigurationRegistry, Extensions } from 'vs/platform/configuration/common/configurationRegistry'; import { workbenchConfigurationNodeBase } from 'vs/workbench/common/configuration'; import * as nls from 'vs/nls'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; +import { Registry } from 'vs/platform/registry/common/platform'; export const externalUriOpenersSettingId = 'workbench.externalUriOpeners'; @@ -15,7 +16,7 @@ export interface ExternalUriOpenerConfiguration { readonly id: string; } -export const externalUriOpenerIdSchemaAddition: IJSONSchema = { +const externalUriOpenerIdSchemaAddition: IJSONSchema = { type: 'string', enum: [] }; @@ -66,3 +67,11 @@ export const externalUriOpenersConfigurationNode: IConfigurationNode = { } } }; + +export function updateContributedOpeners(enumValues: string[], enumDescriptions: string[]): void { + externalUriOpenerIdSchemaAddition.enum = enumValues; + externalUriOpenerIdSchemaAddition.enumDescriptions = enumDescriptions; + + Registry.as(Extensions.Configuration) + .notifyConfigurationSchemaUpdated(externalUriOpenersConfigurationNode); +} diff --git a/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts b/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts new file mode 100644 index 00000000000..4c6a5f0bbf4 --- /dev/null +++ b/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts @@ -0,0 +1,88 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { Disposable } from 'vs/base/common/lifecycle'; +import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; +import { Memento } from 'vs/workbench/common/memento'; +import { updateContributedOpeners } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; +import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; + +export const defaultExternalUriOpenerId = 'default'; + +interface RegisteredExternalOpener { + readonly extensionId: string; +} + +interface OpenersMemento { + [id: string]: RegisteredExternalOpener; +} + +/** + */ +export class ContributedExternalUriOpenersStore extends Disposable { + + private static readonly STORAGE_ID = 'externalUriOpeners'; + + private readonly _openers = new Map(); + private readonly _memento: Memento; + private _mementoObject: OpenersMemento; + + constructor( + @IStorageService storageService: IStorageService, + @IExtensionService private readonly _extensionService: IExtensionService + ) { + super(); + + this._memento = new Memento(ContributedExternalUriOpenersStore.STORAGE_ID, storageService); + this._mementoObject = this._memento.getMemento(StorageScope.GLOBAL, StorageTarget.MACHINE); + for (const id of Object.keys(this._mementoObject || {})) { + this.add(id, this._mementoObject[id].extensionId); + } + + this.invalidateOpenersForUninstalledExtension(); + + this._register(this._extensionService.onDidChangeExtensions(() => this.invalidateOpenersForUninstalledExtension())); + } + + public add(id: string, extensionId: string): void { + this._openers.set(id, { extensionId }); + + this._mementoObject[id] = { extensionId }; + this._memento.saveMemento(); + + this.updateSchema(); + } + + public delete(id: string): void { + this._openers.delete(id); + + delete this._mementoObject[id]; + this._memento.saveMemento(); + + this.updateSchema(); + } + + private async invalidateOpenersForUninstalledExtension() { + const registeredExtensions = await this._extensionService.getExtensions(); + for (const [id, entry] of this._openers) { + const isExtensionRegistered = registeredExtensions.some(r => r.identifier.value === entry.extensionId); + if (!isExtensionRegistered) { + this.delete(id); + } + } + } + + private updateSchema() { + const ids: string[] = []; + const descriptions: string[] = []; + + for (const [id, entry] of this._openers) { + ids.push(id); + descriptions.push(entry.extensionId); + } + + updateContributedOpeners(ids, descriptions); + } +} diff --git a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts index 75fa9995d8d..a0fddc2063c 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts @@ -15,6 +15,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { IExternalOpener, IOpenerService } from 'vs/platform/opener/common/opener'; import { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from 'vs/platform/quickinput/common/quickInput'; +import { IStorageService } from 'vs/platform/storage/common/storage'; import { ExternalUriOpenerConfiguration, externalUriOpenersSettingId } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; import { testUrlMatchesGlob } from 'vs/workbench/contrib/url/common/urlGlob'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; @@ -30,7 +31,7 @@ export interface IExternalUriOpener { readonly id: string; readonly label: string; - canOpen(uri: URI, token: CancellationToken): Promise; + canOpen(uri: URI, token: CancellationToken): Promise; openExternalUri(uri: URI, ctx: { sourceUri: URI }, token: CancellationToken): Promise; } @@ -51,6 +52,7 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri constructor( @IOpenerService openerService: IOpenerService, + @IStorageService storageService: IStorageService, @IConfigurationService private readonly configurationService: IConfigurationService, @IPreferencesService private readonly preferencesService: IPreferencesService, @IQuickInputService private readonly quickInputService: IQuickInputService, @@ -86,16 +88,16 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri } // Then check to see if there is a valid opener - const validOpeners: Array<{ opener: IExternalUriOpener, preferred: boolean }> = []; + const validOpeners: Array<{ opener: IExternalUriOpener, priority: modes.ExternalUriOpenerPriority }> = []; await Promise.all(Array.from(allOpeners.values()).map(async opener => { - switch (await opener.canOpen(targetUri, token)) { - case modes.ExternalUriOpenerEnablement.Enabled: - validOpeners.push({ opener, preferred: false }); + const priority = await opener.canOpen(targetUri, token); + switch (priority) { + case modes.ExternalUriOpenerPriority.Option: + case modes.ExternalUriOpenerPriority.Default: + case modes.ExternalUriOpenerPriority.Preferred: + validOpeners.push({ opener, priority }); break; - case modes.ExternalUriOpenerEnablement.Preferred: - validOpeners.push({ opener, preferred: true }); - break; } })); if (validOpeners.length === 0) { @@ -103,13 +105,18 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri } // See if we have a preferred opener first - const preferred = firstOrDefault(validOpeners.filter(x => x.preferred)); + const preferred = firstOrDefault(validOpeners.filter(x => x.priority === modes.ExternalUriOpenerPriority.Preferred)); if (preferred) { return preferred.opener.openExternalUri(targetUri, ctx, token); } + // See if we only have optional openers, use the default opener + if (validOpeners.every(x => x.priority === modes.ExternalUriOpenerPriority.Option)) { + return false; + } + // Otherwise prompt - return this.showOpenerPrompt(validOpeners, targetUri, ctx, token); + return this.showOpenerPrompt(validOpeners.map(x => x.opener), targetUri, ctx, token); } private getConfiguredOpenerForUri(openers: Map, targetUri: URI): IExternalUriOpener | undefined { @@ -127,17 +134,17 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri } private async showOpenerPrompt( - openers: ReadonlyArray<{ opener: IExternalUriOpener, preferred: boolean }>, + openers: ReadonlyArray, targetUri: URI, ctx: { sourceUri: URI }, token: CancellationToken ): Promise { type PickItem = IQuickPickItem & { opener?: IExternalUriOpener | 'configureDefault' }; - const items: Array = openers.map((entry): PickItem => { + const items: Array = openers.map((opener): PickItem => { return { - label: entry.opener.label, - opener: entry.opener + label: opener.label, + opener: opener }; }); items.push( diff --git a/src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts b/src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts index ab8fc8d7a8a..557424f74b1 100644 --- a/src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts +++ b/src/vs/workbench/contrib/externalUriOpener/test/common/externalUriOpenerService.test.ts @@ -7,7 +7,7 @@ import * as assert from 'assert'; import { CancellationToken } from 'vs/base/common/cancellation'; import { Disposable } from 'vs/base/common/lifecycle'; import { URI } from 'vs/base/common/uri'; -import { ExternalUriOpenerEnablement } from 'vs/editor/common/modes'; +import { ExternalUriOpenerPriority } from 'vs/editor/common/modes'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { TestInstantiationService } from 'vs/platform/instantiation/test/common/instantiationServiceMock'; @@ -73,13 +73,13 @@ suite('ExternalUriOpenerService', () => { yield { id: 'disabled-id', label: 'disabled', - canOpen: async () => ExternalUriOpenerEnablement.Disabled, + canOpen: async () => ExternalUriOpenerPriority.None, openExternalUri: async () => true, }; yield { id: 'enabled-id', label: 'enabled', - canOpen: async () => ExternalUriOpenerEnablement.Enabled, + canOpen: async () => ExternalUriOpenerPriority.Default, openExternalUri: async () => { openedWithEnabled = true; return true; @@ -103,7 +103,7 @@ suite('ExternalUriOpenerService', () => { yield { id: 'other-id', label: 'other', - canOpen: async () => ExternalUriOpenerEnablement.Enabled, + canOpen: async () => ExternalUriOpenerPriority.Default, openExternalUri: async () => { return true; } @@ -111,7 +111,7 @@ suite('ExternalUriOpenerService', () => { yield { id: 'preferred-id', label: 'preferred', - canOpen: async () => ExternalUriOpenerEnablement.Preferred, + canOpen: async () => ExternalUriOpenerPriority.Preferred, openExternalUri: async () => { openedWithPreferred = true; return true; From 1e3a23b4e0a1a3bbad0bfe70964c76172bb49864 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 14 Jan 2021 17:05:34 -0800 Subject: [PATCH 074/171] Fix simple browser button color for light themes --- extensions/simple-browser/media/main.css | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/simple-browser/media/main.css b/extensions/simple-browser/media/main.css index b6b9b108c4e..9192d4b6b63 100644 --- a/extensions/simple-browser/media/main.css +++ b/extensions/simple-browser/media/main.css @@ -46,7 +46,7 @@ button { text-align: center; outline: 1px solid transparent; outline-offset: 2px !important; - color: var(--vscode-button-foreground); + color: var(--vscode-icon-foreground); background: none; } From 6cceb4eab08718ef49d63426c753ec59f6481ba9 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 14 Jan 2021 17:06:03 -0800 Subject: [PATCH 075/171] Remove enabled setting and try to open simple browser to side of current editor --- extensions/simple-browser/src/extension.ts | 12 +++++------- extensions/simple-browser/src/simpleBrowserView.ts | 2 +- 2 files changed, 6 insertions(+), 8 deletions(-) diff --git a/extensions/simple-browser/src/extension.ts b/extensions/simple-browser/src/extension.ts index 9e645667153..8079e2396eb 100644 --- a/extensions/simple-browser/src/extension.ts +++ b/extensions/simple-browser/src/extension.ts @@ -3,11 +3,12 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { URL } from 'url'; import * as vscode from 'vscode'; import * as nls from 'vscode-nls'; import { SimpleBrowserManager } from './simpleBrowserManager'; +declare const URL: typeof import('url').URL; + const localize = nls.loadMessageBundle(); const openApiCommand = 'simpleBrowser.api.open'; @@ -47,11 +48,6 @@ export function activate(context: vscode.ExtensionContext) { context.subscriptions.push(vscode.window.registerExternalUriOpener(openerId, ['http', 'https'], { canOpenExternalUri(uri: vscode.Uri) { - const configuration = vscode.workspace.getConfiguration('simpleBrowser'); - if (!configuration.get('opener.enabled', false)) { - return vscode.ExternalUriOpenerPriority.None; - } - const originalUri = new URL(uri.toString()); if (enabledHosts.has(originalUri.hostname)) { return isWeb() @@ -62,7 +58,9 @@ export function activate(context: vscode.ExtensionContext) { return vscode.ExternalUriOpenerPriority.None; }, openExternalUri(resolveUri: vscode.Uri) { - return manager.show(resolveUri.toString()); + return manager.show(resolveUri.toString(), { + viewColumn: vscode.window.activeTextEditor ? vscode.ViewColumn.Beside : vscode.ViewColumn.Active + }); } }, { label: localize('openTitle', "Open in simple browser"), diff --git a/extensions/simple-browser/src/simpleBrowserView.ts b/extensions/simple-browser/src/simpleBrowserView.ts index 870abbeee87..104acfe9559 100644 --- a/extensions/simple-browser/src/simpleBrowserView.ts +++ b/extensions/simple-browser/src/simpleBrowserView.ts @@ -32,7 +32,7 @@ export class SimpleBrowserView extends Disposable { super(); this._webviewPanel = this._register(vscode.window.createWebviewPanel(SimpleBrowserView.viewType, SimpleBrowserView.title, { - viewColumn: vscode.ViewColumn.Active, + viewColumn: showOptions?.viewColumn ?? vscode.ViewColumn.Active, preserveFocus: showOptions?.preserveFocus }, { enableScripts: true, From 64496f8219686092779f5d6a57f0ddd9fd2888aa Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 14 Jan 2021 17:17:16 -0800 Subject: [PATCH 076/171] Allow using 'default' to force fall back to VS Code's default opener --- .../externalUriOpener/common/configuration.ts | 7 ++++ .../common/externalUriOpenerService.ts | 35 ++++++++++++------- 2 files changed, 29 insertions(+), 13 deletions(-) diff --git a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts index bed2f5e7d76..fbe48e535d1 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts @@ -8,6 +8,7 @@ import { workbenchConfigurationNodeBase } from 'vs/workbench/common/configuratio import * as nls from 'vs/nls'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { Registry } from 'vs/platform/registry/common/platform'; +import { defaultExternalUriOpenerId } from 'vs/workbench/contrib/externalUriOpener/common/contributedOpeners'; export const externalUriOpenersSettingId = 'workbench.externalUriOpeners'; @@ -59,6 +60,12 @@ export const externalUriOpenersConfigurationNode: IConfigurationNode = { type: 'string', description: nls.localize('externalUriOpeners.id', "The id of the opener."), }, + { + type: 'string', + description: nls.localize('externalUriOpeners.id', "The id of the opener."), + enum: [defaultExternalUriOpenerId], + enumDescriptions: [nls.localize('externalUriOpeners.defaultId', "Open using VS Code's standard opener.")], + }, externalUriOpenerIdSchemaAddition ] } diff --git a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts index a0fddc2063c..97bd7002df6 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts @@ -17,6 +17,7 @@ import { IExternalOpener, IOpenerService } from 'vs/platform/opener/common/opene import { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from 'vs/platform/quickinput/common/quickInput'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { ExternalUriOpenerConfiguration, externalUriOpenersSettingId } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; +import { defaultExternalUriOpenerId } from 'vs/workbench/contrib/externalUriOpener/common/contributedOpeners'; import { testUrlMatchesGlob } from 'vs/workbench/contrib/url/common/urlGlob'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; @@ -70,12 +71,7 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri const targetUri = typeof href === 'string' ? URI.parse(href) : href; - const allOpeners = new Map(); - await Promise.all(Iterable.map(this._providers, async (provider) => { - for await (const opener of provider.getOpeners(targetUri)) { - allOpeners.set(opener.id, opener); - } - })); + const allOpeners = await this.getAllOpenersForUri(targetUri); if (allOpeners.size === 0) { return false; @@ -84,7 +80,8 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri // First check to see if we have a configured opener const configuredOpener = this.getConfiguredOpenerForUri(allOpeners, targetUri); if (configuredOpener) { - return configuredOpener.openExternalUri(targetUri, ctx, token); + // Skip the `canOpen` check here since the opener was specifically requested. + return configuredOpener === 'default' ? false : configuredOpener.openExternalUri(targetUri, ctx, token); } // Then check to see if there is a valid opener @@ -97,7 +94,6 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri case modes.ExternalUriOpenerPriority.Preferred: validOpeners.push({ opener, priority }); break; - } })); if (validOpeners.length === 0) { @@ -119,13 +115,26 @@ export class ExternalUriOpenerService extends Disposable implements IExternalUri return this.showOpenerPrompt(validOpeners.map(x => x.opener), targetUri, ctx, token); } - private getConfiguredOpenerForUri(openers: Map, targetUri: URI): IExternalUriOpener | undefined { + private async getAllOpenersForUri(targetUri: URI): Promise> { + const allOpeners = new Map(); + await Promise.all(Iterable.map(this._providers, async (provider) => { + for await (const opener of provider.getOpeners(targetUri)) { + allOpeners.set(opener.id, opener); + } + })); + return allOpeners; + } + + private getConfiguredOpenerForUri(openers: Map, targetUri: URI): IExternalUriOpener | 'default' | undefined { const config = this.configurationService.getValue(externalUriOpenersSettingId) || []; for (const { id, uri } of config) { - const entry = openers.get(id); - if (entry) { - if (testUrlMatchesGlob(targetUri.toString(), uri)) { - // Skip the `canOpen` check here since the opener was specifically requested. + if (testUrlMatchesGlob(targetUri.toString(), uri)) { + if (id === defaultExternalUriOpenerId) { + return 'default'; + } + + const entry = openers.get(id); + if (entry) { return entry; } } From a34e751b017fe8c6ef104f1a89cea28196a32918 Mon Sep 17 00:00:00 2001 From: Takashi Tamura Date: Fri, 15 Jan 2021 10:24:08 +0900 Subject: [PATCH 077/171] Fix scrolling of markdown preview. Close #65504 (#111094) * Fix scrolling of markdown preview. * Use scrollDisabledCount. * Stop initializing scrollDisabledCount. * Make scrollTo enough large to occur scroll events. * Should resolve when the error event occurs. --- .../preview-src/index.ts | 42 ++++++++++++++----- .../preview-src/scroll-sync.ts | 1 + 2 files changed, 32 insertions(+), 11 deletions(-) diff --git a/extensions/markdown-language-features/preview-src/index.ts b/extensions/markdown-language-features/preview-src/index.ts index 064c30ac969..90e96b6b304 100644 --- a/extensions/markdown-language-features/preview-src/index.ts +++ b/extensions/markdown-language-features/preview-src/index.ts @@ -12,7 +12,7 @@ import throttle = require('lodash.throttle'); declare let acquireVsCodeApi: any; -let scrollDisabled = true; +let scrollDisabledCount = 0; const marker = new ActiveLineMarker(); const settings = getSettings(); @@ -37,19 +37,39 @@ window.onload = () => { updateImageSizes(); }; + +function doAfterImagesLoaded(cb: () => void) { + const imgElements = document.getElementsByTagName('img'); + if (imgElements.length > 0) { + const ps = Array.from(imgElements).map(e => { + if (e.complete) { + return Promise.resolve(); + } else { + return new Promise((resolve) => { + e.addEventListener('load', () => resolve()); + e.addEventListener('error', () => resolve()); + }); + } + }); + Promise.all(ps).then(() => setImmediate(cb)); + } else { + setImmediate(cb); + } +} + onceDocumentLoaded(() => { const scrollProgress = state.scrollProgress; if (typeof scrollProgress === 'number' && !settings.fragment) { - setImmediate(() => { - scrollDisabled = true; + doAfterImagesLoaded(() => { + scrollDisabledCount += 1; window.scrollTo(0, scrollProgress * document.body.clientHeight); }); return; } if (settings.scrollPreviewWithEditor) { - setImmediate(() => { + doAfterImagesLoaded(() => { // Try to scroll to fragment if available if (settings.fragment) { state.fragment = undefined; @@ -57,12 +77,12 @@ onceDocumentLoaded(() => { const element = getLineElementForFragment(settings.fragment); if (element) { - scrollDisabled = true; + scrollDisabledCount += 1; scrollToRevealSourceLine(element.line); } } else { if (!isNaN(settings.line!)) { - scrollDisabled = true; + scrollDisabledCount += 1; scrollToRevealSourceLine(settings.line!); } } @@ -72,8 +92,8 @@ onceDocumentLoaded(() => { const onUpdateView = (() => { const doScroll = throttle((line: number) => { - scrollDisabled = true; - scrollToRevealSourceLine(line); + scrollDisabledCount += 1; + doAfterImagesLoaded(() => scrollToRevealSourceLine(line)); }, 50); return (line: number) => { @@ -109,7 +129,7 @@ let updateImageSizes = throttle(() => { }, 50); window.addEventListener('resize', () => { - scrollDisabled = true; + scrollDisabledCount += 1; updateScrollProgress(); updateImageSizes(); }, true); @@ -189,8 +209,8 @@ document.addEventListener('click', event => { window.addEventListener('scroll', throttle(() => { updateScrollProgress(); - if (scrollDisabled) { - scrollDisabled = false; + if (scrollDisabledCount > 0) { + scrollDisabledCount -= 1; } else { const line = getEditorLineNumberForPageOffset(window.scrollY); if (typeof line === 'number' && !isNaN(line)) { diff --git a/extensions/markdown-language-features/preview-src/scroll-sync.ts b/extensions/markdown-language-features/preview-src/scroll-sync.ts index e833862066e..4d1adcfb35c 100644 --- a/extensions/markdown-language-features/preview-src/scroll-sync.ts +++ b/extensions/markdown-language-features/preview-src/scroll-sync.ts @@ -143,6 +143,7 @@ export function scrollToRevealSourceLine(line: number) { const progressInElement = line - Math.floor(line); scrollTo = previousTop + (rect.height * progressInElement); } + scrollTo = Math.abs(scrollTo) < 1 ? Math.sign(scrollTo) : scrollTo; window.scroll(window.scrollX, Math.max(1, window.scrollY + scrollTo)); } From 4566eebe4fab99f237e734e7f949ba1408b4c72d Mon Sep 17 00:00:00 2001 From: Thomas Neil James Shadwell Date: Fri, 15 Jan 2021 01:26:10 +0000 Subject: [PATCH 078/171] Fix typo in markdown sanitizer (#111258) There was / is a typo in `markdownRenderer.js` that allowed any *trusted* document to pass arbitrary HTML through the marked.js sanitizer provided it is wrapped in `` tags, or similar. What could you have done with this? Not much that was not already possible in trusted mode, which, as far as I can tell is used just for Jypiter Notebooks that pretty much definitionally can execute Python anyway. Insane strips everything worthwhile except `` which you can use to send `command:` URIs on click (`javascript:` URIs are disabled at a higher level of abstraction), but are already whitelisted (L141) for trusted documents. --- src/vs/base/browser/markdownRenderer.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/base/browser/markdownRenderer.ts b/src/vs/base/browser/markdownRenderer.ts index 6293b732999..81457733d22 100644 --- a/src/vs/base/browser/markdownRenderer.ts +++ b/src/vs/base/browser/markdownRenderer.ts @@ -218,7 +218,7 @@ export function renderMarkdown(markdown: IMarkdownString, options: MarkdownRende // We always pass the output through insane after this so that we don't rely on // marked for sanitization. markedOptions.sanitizer = (html: string): string => { - const match = markdown.isTrusted ? html.match(/^()|(<\/\s*span>)$/) : undefined; + const match = markdown.isTrusted ? html.match(/^(]+>)|(<\/\s*span>)$/) : undefined; return match ? html : ''; }; markedOptions.sanitize = true; From 5c39159acb450ba5b46a5a23638d45c91c069c76 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 14 Jan 2021 17:28:56 -0800 Subject: [PATCH 079/171] Fix cycle --- .../contrib/externalUriOpener/common/contributedOpeners.ts | 2 -- .../externalUriOpener/common/externalUriOpenerService.ts | 3 ++- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts b/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts index 4c6a5f0bbf4..457d5df3000 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/contributedOpeners.ts @@ -9,8 +9,6 @@ import { Memento } from 'vs/workbench/common/memento'; import { updateContributedOpeners } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; -export const defaultExternalUriOpenerId = 'default'; - interface RegisteredExternalOpener { readonly extensionId: string; } diff --git a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts index 97bd7002df6..d2a793d64f5 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts @@ -17,10 +17,11 @@ import { IExternalOpener, IOpenerService } from 'vs/platform/opener/common/opene import { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from 'vs/platform/quickinput/common/quickInput'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { ExternalUriOpenerConfiguration, externalUriOpenersSettingId } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; -import { defaultExternalUriOpenerId } from 'vs/workbench/contrib/externalUriOpener/common/contributedOpeners'; import { testUrlMatchesGlob } from 'vs/workbench/contrib/url/common/urlGlob'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; +export const defaultExternalUriOpenerId = 'default'; + export const IExternalUriOpenerService = createDecorator('externalUriOpenerService'); From 4207c4ee13ef8102cf7324670d6fb80d0f50d7f8 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 14 Jan 2021 17:43:52 -0800 Subject: [PATCH 080/171] Move defaultExternalUriOpenerId into configuration to avoid cycle --- .../contrib/externalUriOpener/common/configuration.ts | 3 ++- .../externalUriOpener/common/externalUriOpenerService.ts | 3 +-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts index fbe48e535d1..78218113c7a 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/configuration.ts @@ -8,7 +8,8 @@ import { workbenchConfigurationNodeBase } from 'vs/workbench/common/configuratio import * as nls from 'vs/nls'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; import { Registry } from 'vs/platform/registry/common/platform'; -import { defaultExternalUriOpenerId } from 'vs/workbench/contrib/externalUriOpener/common/contributedOpeners'; + +export const defaultExternalUriOpenerId = 'default'; export const externalUriOpenersSettingId = 'workbench.externalUriOpeners'; diff --git a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts index d2a793d64f5..473b4f7aedc 100644 --- a/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts +++ b/src/vs/workbench/contrib/externalUriOpener/common/externalUriOpenerService.ts @@ -16,11 +16,10 @@ import { createDecorator } from 'vs/platform/instantiation/common/instantiation' import { IExternalOpener, IOpenerService } from 'vs/platform/opener/common/opener'; import { IQuickInputService, IQuickPickItem, IQuickPickSeparator } from 'vs/platform/quickinput/common/quickInput'; import { IStorageService } from 'vs/platform/storage/common/storage'; -import { ExternalUriOpenerConfiguration, externalUriOpenersSettingId } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; +import { defaultExternalUriOpenerId, ExternalUriOpenerConfiguration, externalUriOpenersSettingId } from 'vs/workbench/contrib/externalUriOpener/common/configuration'; import { testUrlMatchesGlob } from 'vs/workbench/contrib/url/common/urlGlob'; import { IPreferencesService } from 'vs/workbench/services/preferences/common/preferences'; -export const defaultExternalUriOpenerId = 'default'; export const IExternalUriOpenerService = createDecorator('externalUriOpenerService'); From 54cb0ed544e723398a435a2e84e66bd25f8fd744 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Thu, 14 Jan 2021 18:38:27 -0800 Subject: [PATCH 081/171] Clean up settings sync entry --- .../userDataSync/browser/userDataSync.ts | 6 ++++-- .../common/gettingStartedContent.ts | 2 +- .../gettingStarted/common/media/github.jpg | Bin 133193 -> 0 bytes .../common/media/settingsSync.jpg | Bin 0 -> 340884 bytes 4 files changed, 5 insertions(+), 3 deletions(-) delete mode 100644 src/vs/workbench/services/gettingStarted/common/media/github.jpg create mode 100644 src/vs/workbench/services/gettingStarted/common/media/settingsSync.jpg diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts index d00b36af809..03d6e9310a0 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts @@ -155,7 +155,10 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo textModelResolverService.registerTextModelContentProvider(USER_DATA_SYNC_SCHEME, instantiationService.createInstance(UserDataRemoteContentProvider)); registerEditorContribution(AcceptChangesContribution.ID, AcceptChangesContribution); - this._register(Event.any(userDataSyncService.onDidChangeStatus, userDataAutoSyncEnablementService.onDidChangeEnablement)(() => this.turningOnSync = !userDataAutoSyncEnablementService.isEnabled() && userDataSyncService.status !== SyncStatus.Idle)); + this._register(Event.any(userDataSyncService.onDidChangeStatus, userDataAutoSyncEnablementService.onDidChangeEnablement)(() => { + if (userDataAutoSyncEnablementService.isEnabled()) { this.gettingStartedService.progressByEvent('sync-enabled'); } + this.turningOnSync = !userDataAutoSyncEnablementService.isEnabled() && userDataSyncService.status !== SyncStatus.Idle; + })); } } @@ -449,7 +452,6 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo await this.selectSettingsSyncService(this.userDataSyncStoreManagementService.userDataSyncStore); } await this.userDataSyncWorkbenchService.turnOn(); - this.gettingStartedService.progressByEvent('sync-enabled'); this.storageService.store('sync.donotAskPreviewConfirmation', true, StorageScope.GLOBAL, StorageTarget.MACHINE); } catch (e) { if (isPromiseCanceledError(e)) { diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index 22a395c1815..ce9c861aba5 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -138,7 +138,7 @@ export const content: GettingStartedContent = [ id: 'settingsSync', title: localize('gettingStarted.settingsSync.title', "Syncronize Settings"), description: localize('gettingStarted.settingsSync.description', "Sign in to syncronize things like settings, extensions, and more, across your devices."), - when: '!syncEnabled && !userDataSyncTurningOn && syncStatus != uninitialized && userDataSyncAccountStatus != uninitialized', + when: 'syncStatus != uninitialized', button: { title: localize('gettingStarted.settingsSync.button', "Sign in to Sync"), command: 'workbench.userDataSync.actions.turnOn', diff --git a/src/vs/workbench/services/gettingStarted/common/media/github.jpg b/src/vs/workbench/services/gettingStarted/common/media/github.jpg deleted file mode 100644 index e383489a9d21b7e750bcfeb989ce2a53322065bb..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 133193 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%0ALbMmSVB^jB~-=QfscFu@74E#b(;W*mC{*wMpE_m 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%0A?EeL z{qwH7SHIT*m`KP-NKyod0CcjFwq%hL;U#ClT}Mh2XJ30G9%|Pn@OMfgb5-k~3Qh%; z1;QVMG}JNiG6ZnWI5;E^Z(nE6+J2&04r-Jl)l^U$yvEgiW%P4Sxz_cDY*r|U^U|C1 zCMzyXF1W@QwYoJVsN5|y<(mMfPihgUci#}5)R67qh2@^n3!)pXQ}OioJwUAys7n`! zkdIpR^4nAou!5nLa&!uh5laQ-<+UQ|DsK0hDjGy*v3F{6ucA=rTtsW3KtrsOn4-F+ zuSxxh%Mxl4MY(CsMLWa_{Ajc3tdU*N7WGQ-$$q${F3I3R^e|C}#@lFenOPG_&##Lg z)c*&G-0J%)gj6Qo#2fbW(uTbMe!{k_i{NZ+RP%-w{#cRJL zp=~v;3(4ec60H;sNs~|HpBkPdZ-}x+a+#;2c5|m|oeSFpl76KQi7*+0wfTmqG!~b{ zL%sGi!4JZ?U5(KCZPTSuLQ858NS>f$c99DQV;1O;6xxIT6b{C=(<}N#Lh74!Q&w`* z9$HJxyRDX;QBeXamxrj3nrYVxcw4v4lvs34zUsbJSV;F0wq#gi>-=<5W8Ch3IGN7< zkAw&Q_pjSy@Ir{NsA)6{%RA0MvBX4p?I}MVu1S39 zJ%KTvW}c#kFa-O~x^$4MAMJVd-B5>7-6UCu2zG&T>5Yg5uTC8-0m~nQe4E|RDu|ZY zq9DAMmujh@UcapZgQv)Y(_)12icjei0WmQtFB#hl?~zr(F1a|{G&bD>nRGkXiHTAC zxk`~FR2;`6uJt1QI9*oD!?hUN0M{EF6WFK--mQw70Z}Y5!mOOM)!x4Wduq&+c0W?L(|m}=uBN$jjTI?6c?h^rGCBbqQs=VMGE3_s z74}Cz2e^C~lDV#+(}ezJ(RV8#rzv0Zd{L6vq;>Y(55;IJ4Z7Ef*4WRj*t)ojxHR@U0% z9k`tK9hG|_9{S@1k*}gntWzCF<9jFc{AR{G4EMm|=%8zC1u zYm{}rAZ;JmUT)VWjzQn%v{wfC(RTng%lF>^fu`Ecp^TYpev@krI_r3jyS-pWs%v&DB>U)fhF<2Ow6@6BL|&9vXlUi>;+gA2O(rhx4>N6ea=I;Z zfvgip6B#LDH&R~%3-po?5vS+BjV!6Q8bVPQdEWa-``YM5e{YYeUL1jDZo4J-g(j|% zo=M>=n)-T%E|$fH*^DZ^SB^fMgIYg~1J={0KTerU%i4HP?tA%_w;dfP7^kY@81^jG zdz7WX#+paHlv_QHw)NL*K1OB0n8$ZscMlwQF99f*UQ<7UW7$i&I&>YJ5%I^UC^)ZQ!I9fA|s+L7WIUqP|0U+Jij=nf6 z99^BQ2I*TLbEb`ORab5|MI3kc0y=*KfCU=&4Cx|fKO#0RJk!VDvge=&WuPY>;1nGv z0jv?aG(^Yq?pbCBVNv&MUf;STzeq3UhUEDW6u>i*MDd1kXha!^eT#EX3Pm)UT5ha~ zQAja%1>CZKT_cSxKrDL9H#o8aJb^TG2Qg-0s`e70`S+PxpH;wmlaPee`-MjqAk~tp zrcAPgN6<kvwy4;agp8oYtupbO901elsV6x}gv8LkgMs z685hvvg^xsRR)+;nk`~#sk7_L?O)hiS4784qL#6;lwA_k%ME+QWL5Gnb*lPqY85|D zi*9bkdz#|z9i7|j!}~@GvQBb11iXdV(Cem_4JtEMnwMnGh}mR-DFOs5M~3Aw4ye5k znGP3D7}@djGoRh`mu2#Gvsr{nTqJi;CE6oJMZNhCmt|^_I>fdvkyjE4=sB3)L>Kdx zekV-?^NedK9Q$HBHcF85qr0LXvMrYX222R_I`I6A??DT)P@&OTt9R*Kh~MrLyFmUh zu9UBXRy8wu()Iz%C$k0T?P}_RA4$lp?N-OPv;6Za=L5S=o-X;wvIty$)=wh8;B4+) zuF~0j0pD}j`pwE(YS)vs-e(BSAw0_yR~>W{pSFXkJW!*a^vd*kRQWLVP1oVMID*)ti|W~C zLEKDMTEnw~4%*x=DgA~ta()ALE(`?bX?Wb>1Q6>tLyl^0euG*M!j&*8mfk)iu29o2 zeQkH(uKIOGFq!(07i{0E-Lb`p3pQ!pu;$ppb0_2is&mW|8N#4|CdU?=!S?f@u`Y=5 z5|3$)7tqi+`)XX8U59*n*bw>iZh9@Dli3{ z!T-SqPE+ri%X4%F2MG_dFg-diANf1$O6rg!%^n4R))54~GGTb4N0!%$n==~o${+KE zPIr+;T`!XwYga5=^%qj^WT7PlKG}1E^ns7^Sn~7lr zog0!5neycR1|+GxkMcbU{j{9!zP_l>KkyasS}&*!$aOf>68{PckgS}tO>vb)w|li} z8cHtUE5%zk>3)9U%F1*2D9;~A=;=Iy&HLKwLNJImG{*l-b@}yKzXpyalRCIv)$FOS zTALAlrgNW>{$>fDDGMJRGSJatiKQw{+98Y4o`S1>p8!-r3Z1^;w4U6;s%A>@%5>osP`RscVK{ZXSL|BuQe7LL=yx{e7Dh@)t8QB{X35;mN z)Ar-apO$8p`&2avI-TYVojo?w;y;`uGjg$K>IwUawDnZg85sq0@sI-PBcO2JdiP9q z8?Ea(`!CW$x#>tn1Pm&TU3CZ1y5`W_-X?_z3=Li1ljQRDM(#F#J>STAb|#raNyH)A z9Z;gr({gAH(M*7HmHGvQ$(pWV`%KD#a8djzu1nbxxYNo7+AMrHYq&2~yGW?2zs2j` ze`dcX4IA!L%{>zCR z0rR9!Y{a%buZ_~%b3bZCCQ$xpYp_#TFQna-2PpIz2}|)7+{b!dFMRNs?$@#k7vi{a z5y&QYH5Gc0H@5Ft6~ zesFL>?p-T&$JEi}Y0qZ?i3>#o4${p6O6~SCfbBi8BJS(8HP`ASg`YFH7&9t=1L9Up zK-4F%8Ve(g8;ol&dn!^}!>V%~JB|!UaN5vn5o&7`{HNHcWJd#gW$6Qhm<8 z6y+`mOrsGapL^lH%Y&cSq*rZAsJ#?J5|yb>t_F=9-H6&K4UJs0!woV0n@%@iYy{1` zu&(+IAdq>E3Yh=y0F0k%)*Kr486FDVj@P;v&ma%Kj$LkuaGwm_8LBK*V6)Ii ziS0FW#GSRj72(E|Gu#q>oCtdAc-IO4_Ti)Qu?FoJ&^nQK0P5Jy zZ7SAyA8X%VvNI0XF{*8%AD4bGl&_Z7!b zL1SNVZRu=R4)GMlLb1sXsdz#^jk{^Q=@W@U;gNN0%U<@-W}<*rPX2nHLo{ZbpRlm} zn(6z(h+m2KigSf-DvWSi2)#d6=38z{XGKKT3B7I!I=2g`Z}T~^S$l3gX9r*;NL!my zCv}8s^b(+JYwe)zU&EEfCH{1Zi(kj~j{KYdL?2vwUF#BHPrp39`d;Knn~udkJ-G%A zNq`IdnmRid9s&q-e$@{7z}1NN`i7|T{giSUn*>pNs@2eVKp&o*)^9*b>h8kPnqk$W zKYO6RL5;S=Y^GT_OKKmSZ(l3Iy-qX0xX=>3X&AR}kXeIv-xgbf+^dONg18V_9Rmk^ z;uDL@`EFXLPITzjkuiZ3j>o|#nmvGVcI_99we3`vDf|5N=_O3AEnX6vYx%x{4!0k# zr${aVpc+_28PxrNV2<3ASJ}l43AV57`A$MV{UIyvoaZ2%rR}l*oBb*f=Z&XK3{+4W zf3ui~y4|%@l-}Gg&l@{*dlSrNQtrli2s~wdby0g$b8*ORb$A$W%ALOpyZ#NReVlgi zVmDfCX#4nnc*c7manrTeVLqMMgJGI~qtn@sGRhrz0sEfCzvnoa=>*y1%+b?Sm2`qF z8}Xa8a$OGRyUH6^{{~n$+8E!~Pw2FYS=VqO=t{8fHdF1e(^cX(P*da2)y=v~t?=$6 z<))U3HAkCM&aDsYL-xQrbL^f2`icT2a)Y08J=Ln@i3HkX5yIMP%E7$VZuoOeH{9LY zWHWB{L4+Vc%f+dUM#Ut1SH{2q+F>TR@%=-jv6JJYy8P3(JmbZ*Kp zX#IencIHoi<$A;M+$WCRnRaPk$gC!9nf;29Kj-OCsm=AQEqI_KHoI3E+j0-ig|J&` z-dXZwGcsKLl5grBW}WQphy;q@Np!SnNG$OtVZLF%0WfU+2q8Bh1+YROdOxYvbFfh^ z;9t<~86yRVQe#L;sm<3Zb~LVkgt4=kFi+=J;PP1R8&0f}R#+#|SU%>Rl9?D+GLM4i zOLDs2jw50}s+&!nxtuVeYby64930vQ zAv~Vf$j}o*m8Hs;P4G=@z{8uZyD~lvaow;Mc)<0;d*%}UrjK$&h?XsIgz+2jB!g`| zBovSS86mrRec{`1vK?UJq4Mo%M)we$ee741PHDi(UgfN>*mHSDIIc2jm8D~DjB<{eWW07XA4vF`Gf28k7L*@ed357;e&CREz<5d}s zscX%F5__1EYKj0XzB%4_&~FR!S`V;=|6E5dc;Te`dLiucg`0;6=J?uOm>a8*)68_o zwwKQ$rsMm{?6yTeVN?7(PBKv#pZ~S{z-44ALmI$zbAH+zcH#xHwd&lpwQYf;)ho_M zc8DqGZx}ZQBNd2qkTEOJ?CujNqobAbS$0D14M_3YT)tDT$O|M;XMURuf<0uR$f|&h z=rY*SA-T-$P9C7bPpscWJ1XO-w86@8n9fZ)?bvg{*Fmlz;&v3Lk+WuHDg*eW;I!f@ zR9kgzO1ZnbG1J%f!*Q9Hki-3~EWSsTUWv)lPw7x2jSce<7ptO* zU=6|HbXFvdIzan0$Bvmy$3T@LyJ5A-9S0n{GP0e5ZrkmPj_ELx6rVT9;WZ@?S(%LM zTBE)V%?Iv*f7`D9sgP9d&K!V_Qu+@R9s$E6p&+B7ApsC5JOF@12w>nN03lF#dJVUv z0$%Bm`73kR;QIdEzbHJS%pVlKFW3gnhObrWeNv>>FO@f8ISp3GUw+bm$V{`GViyfI zQ=X9s^>!L@1)3Vy8d0{OM={f;gasJ={L*7gVwaOyw6aNISu4s8^$VoBpNOAPna_DD zT4Ugy$Li)1r`_Yf%2%5Wvkv^T)xA?nQ8{__VKSJYC~NEahLJlaLlKFtQ1|wo@NoG; z&gm=WtYqu9d*U%!$<{AL>rxPdnsLpP;yJod5GbM2vu->m?vXc|LFF)kA-G;C=k|I^+O;Wp8s(ho4@3$8#|eJj$FbVN_;JedT>QxYsK#k4N8r zyqxTUitL*E>@y4}YxGTbmw8uit57$hx=|y_-UmPk*DF891fvA!@+kipu>L5dI0Jb& zpf(AA5q{$TF)v@Cs|{MU^tCN#n(m>WB4F|?uFZ7#nBZ!w&2bg5aTY`RC1nx0l(VLd zW$d#C(QAy#@8rteSRZ{AMdV)^TaKP_-L@;UME>$HzohOFCsvW5z3D+=d!;UvP$$1s z*U{J3Je_6#v~^|L?T3+7&9f6u!mf8YG}y9n7u3@{DC2XQB~GnEEQ{})ww;Yyzl*1I za%0#ie4Q1=yb`Nd&GFo!S>~?y>k$ZdFIm6uXs1WoC&;$=7$-n2zqvWor}K1ID6JaQ z^IG0aMbplqK=ROAo&|9yAi$0fbZyBIQSn?;6)*uZrSlqGmZE}hEs>qbP=J5#^a33njD6hz;SpA zeyo9@osUFdHlm>VRNwsEbEs2}UdQt%$0QAi9E}5Dl{`x2e0|p+!gA?CF_qMR!Hd>| zM%;TEGMB@O=Xs@c<=WeP;DWHXM?X9kj}fo(Y;eS`E1$Rmc6pSbXub%=TWRH6x9}R! zTW&s|zV_`No7>kkUpxZ23@qaQOLu4f4h0wX@i7fE_Az7MWe;Otrcu^-WG71uNg}(* zG6>n%(L;r12%$)pM;L^$P1Z?C9+7P@P1$Bp_UHBf{Qd{;b$+<7^UM9yeVy-po%6ZR z7uPgM0E#esLwPb*EP$_jgB&CfH{74=j`_-fr!5EjdO5))ex8Q?J)$IUMMCvKjct0Q z&olm#dNi+9=!2XTf9zw7Mpp3O`qC0v;lk62InN|FtZY157a;NibcWO4)$r|{KmML> zO8_wV20`dzSsfMi4shgKp*^N-BjFq*_$%+%%KpxTs6n(;MIR>>67_<+a)5I?tNvSi zrAWk$=k15>yqnan#TcfYB=cMkB(5tu4E$4S1-{Z-`K1Y>nDA0t34*)J>I-NN_4q5e z*hk7`Yi5bf9~-M2pt6K|6+azbjg+&$d7k1Ng?D^wKvmuO(Z|Wy9DYB`p&c+wfh$Dk z!9L;+$&k^Dc_$nVIs> zKP6-2hapiEhnd{#azT57uAaUC7J7FCU0Fa5OD!vm3?_>pJgOqRM08p>+rqrB&*G4+ zQ{jreLiYDVRJrVf$^E}e;zPU1Lq7csv<7aC^uts88GeHLg}RMLQa}CJG$nIvJoj@~N8*7xNW@+^CgK z<3xE?tVXzThQni^*mI{QM%OmYVo2An zbj5@;U#Edg3IDjiH@z`h1_|WN(Cm#jwdaE~U#qfN&~Umrb-*^LNWthzkaGa6cYjIPlCZ6t3LMIX`#d>bxvLB~z!KlmG!4_z$O$EYFlx7akzpMtz%J}6YrAG;$J3$!@5uy!< zo=-g+L(gKO=%r&VZB0<_rytL6Gml?qk;4PAu?l=NOVrr$q@5^%opcfSJcf2%48(ib z{LV7@FG8(nvE4Ib?}c}+$K$Ju`gbp&rA6CBHzfTuH=&0 zZ`z)?17=}Vp8)v<$q7iGye3)^nUr2Di?N9?YvM|s3JVsSd>?yGGaaRk0ogx_7t4gU z9fv-YGxIXE+gby4ax_qk^aHj*m^?EYAq`%Vbnkm;B_vlRq2z~CVGjhbA#vz%7eCy! zh$6CfR$WaUD^j%`Z3w%!-qTrZQj-Os7XdJlm35?Fzp$OoZ_xmUrUZkvTSu&g^&^FH zRwWuf|2Mpl?b;9?#jPzM;D{^K+~uLk*i~eFXwAJf6Wg?51N--abFG7*ome(*=f!jD zG_k&c`sKD6DS?hB({UYl%+qqp_lLv(=ssudLyBG=#fAQ;7tjSKYn z(+(uBv08p3NFw?~&RpxPb)y~I{({?_j+@>b)h*vb8U*9qdvauhwq^uX>Z>*8<}}_# zh$`eWoR^f^a$;59ypq;UW8Xgxhi!C*uK`h8X{?r{P^_U|%6kHV5I44tO? zK)!$Dw5h+7{row*H8s?FGL=2Nom2CQ%*_zVn&R=l>WMI&QfHyrlpBYYm=h1Ne{@|J zKRVTNdV|1;WXK8{3WcW6yEXO+Nwl##7le6B0QcG`?&&iCh`&S|ta#4XGs6JLWd<hiL2c%H3ny*9%UrUckzY@@{L<}nqLZ2~_5!xEvs57(# zz-??%M}Ow`W-e7P3bn^4UI^=i5;R)J3RpYxUU~EijrfjxE=8ZLInvZ_#IgYH@A~}q zQL6tGiWx|j#2WzIrC!eHW<+7ezJnDEN#WkQ(M5H8Teu0%d)uOhHOhPw{Jnm*Rh$F6F}CQm*mNf76fw=Eex_Q_i{bR^vEa=Ymm)m&I@HElCFmepY+*Ewg+xh5y5&nzw!I|cr*j`1CM=36S&xI~q-K)(m153yH{s#~o zab(Ho^!;EH^8QTyfmZRO;))1ba3OLeZ6}KGPfFY!_8;gY_iQlWJ2EUVB%)9;GTYW= zFRnDV3Slj-QH{br4<%5iy5y|j3VidvoM3+TGVKuF134z&djV7=3Vr3O0kRbnK4~3F z$6E(GqO^XWtT2=1N?VW?bC{t!#M7Pbk=(1vCuPB5QtG1rs1Ui-S^RWbem!Jp(+VXV zyo`OmL!N3)1MChRe>2TE93d|Ew_-!aNyL%dBC8?S*{_Cf7PNVGqlk%a(EFn za>Q}nis|o08x6KC0;GfEOCjFmie@CSINKU@;>{|W=W}Vv+`?($%!VcdTrtywOA%%o z9}vvkx}wyK%yUj!lrGpo(Q*2@k!t#IThGM>*$kjJA5Uws-1X2c0aTopB55p-Px|v; z!2~GO_*^NJpK>n`|Dg29PWklVUK^=LdCLZpZJL8hhbNY;coXea+)cLCrOG4X_Us00 zJ*o)XEIDzDf(`XN2;rriyg0g0I&tnQ)n62=|e*@VK1l+2hi~| zfj_L|9(TP)h4wDP> zum5-FHxUTZ5a(DwFAhDe8KHmr5Bmz-Cy1P4P#&<R+`Q zjY!p80ZD42lKBMSp#c9U%`qEoE%O;gz>IaYnt%6~iKAsbkErPP{%i`FXv?^d@g9Sf zffj|6fU}4s#KP#5xKNY58+G;=+MZQS4F#hFULmrP%!60vExkS$#( z^b8N!v0!8iSzcv=l`4-WBmr0?89pkw(>&!q@j5a86ia&fURp~GQy=4?_20fx#+tZL z5P{|KN6QQIm*vo~&fyQwL*Ydm)%r`4g5Uqd zgi)-~bX5_$nqRFb;8W@B$Wy5$f|S~wh}<%S>Z6rdA3hvGse0;pJ{6R!@0E0z>^)2N z)h0s}KMa;Kf8=QhW7C?TMfnbYjllALv|clt+hH(iC91q!2rNXk3B_7*?`YkDQBo#1o z%<>S}t%j_ccLLi3U3DX^jHN(25r%#ih4O|qhtR>vi59l^M(w;#dM#5jX$WfQT-7Ch zkKh*Y7fj6N=krdlBJ2d;TyAmLCpWZocM^0y%$Kwpc{Px4z7Pn#&~`9TNbyR}BPht@ zcSO(On4;fjCb%p>1--Hc0lA=Yj#+x=-?2DHkftbZ{k55b!2Eb&?qO#ErZgCqt28%K zmkt5(D7@&hE9y$(qaY7%AQMB3ga+5_x>HtV?UHWY%<`BPQ(#%t!**6@LahvaCUKvO zO*(FC9s2-S&dGE?{=WV-TXVq(z?%=&yY+0wU03?Dipi6i*&AOySJb-Y%zfqYX5|m2 z;%v?dP>6r%Cd{vJGYlZB@3}KE@XmT+3c;O^SdV_q)2L^!Frg;`)5@lozRrxMcQ1)o z@iX3g`M(yx)N#iCo(bu$tkDOXHP!&oDf_1%ul&DQ96+)CC+0F5w`&efun{SBs`9Y) zoeS<)*^`AuN>7RaK{w1V)9g)=CVJBELjB6S;*)N=K=>7mtf|Pd7uw3?7(4nicAJld z%xSMdxcGRYA!ED(Ug{AxF7)=|%;4I{+mh7Piga40iw?uThk5e}pJLaXe|mDJj*aEi zwWnFH8#6$F4g0D%--@&t#9>KWU`|L!aplck_axZ$C-`WZdJR@@e!}CGdC?-jQP;ZO zN0lK8dL%ZOOZt!R{b=)S&WZM#ji(&CQp+Ffhovsrp_gw|ke>SV+!uGaL_)3No+`0F zVHOsPEvgRe>cbPWUH1&_)Ya|h{2s2Ubg6l&0UjHG!epZ1^gMIJ$ez^+Q7zl%%Y)b% zIRz%JM{kBYSFNPj=q}Iv0vV_=Ux4)Wm+FRGjVdEme0-=0fpyTusE9jUhw%$rfjlD` z-VWS5Sdh|fw0RqZl2`loj=KBe8ez}!!iLSW+&1NH%?u!P5r?ON?OUR?*7F;5auGIA zwt=xv!f#IJJiQ&P93FL8GTbdvzORk zNEdKBF9!5f$Hd17=Z0vW8fQ{WcbMx6uINqilxeSR?hD`D(xo?~d{1Of_JEft(&*Pt zg_e~@A8x8FGaTgeMoGWzeb;4>P#96Em z^eW>1SB(8HN-~!3;opW6a?<*iE%D8(@oADcD*4efns!ZAlc$=edk^;*a=!+-7IoDP zs|AloX=p;HGK*a_^Wl`+bJ|SwDW>|{Nhw^SUrql0rM@}>$z6e?%As%E2cM%H#Rtn& z<+LO&)I;9VF(s(T^BUuFUu~jmnd7=*6kj>6{&DAyIus=@E^))66G7v=9AdSh>{2Hl z9*Jgz!fe->a=9NR&@WVCZK8LfTJ5lS{a#;$?dfLdu_t7y3qcsr%;8CGorVUdK@@dstn5crkya-|a?Dei~2yYHK2?r4sF7 z2^EnrA;@1$<^PN)e-j$2I8l`tr6}2@k*!yP(vtlsA=w1-A@%G{?p)j2T@;`%?|jJOPGDIZoL_eZL7HYO}LEqd{t zh1xu4t;*+0mtnUyD_u!rEpW~rUK2MzDqI+is=xNtX6wt8&K!xyR3g~ce|;l7(Kku~ z=dd;SVO<;XOJzRvm>L^XCIbwFV}p4cVt5o`yVW`cW2u*Wd#-DJNc(O6RK7H}BUx)r zba85M6hd`e4ucDl%vY_t)~S9l1WvKpXe_bR*I^_bU^eK<@!O_ZTCN65PR~4EfOjmo*#7Wt99boNihm> zst!Zl4^5z~SpRoWzZitquGlJIdgpD05>tMjV|T~WJ8Yn!(>W^U(A!P9np5?18b+F0 z%1*g0g;TnTgjY$XcH(Q#oX%HR$!wT5(d&&rs3w@xsPI(f3HUso9QuqKu~-H_O~x~H zq3rXgmonqtT;RZmrfL3W#35xgoKoo8JqEM=y*C@eT-5xIqGUhZZINnWlc@Z**&b%A zauj$+;Onf!`CAr$s9ftm%Ha_FZaB%DWSAn*Hz=H+gVujP@IG+lZB)K5KOmEvmr>tg zjC9n0ncm^?C6&{O*uRSGjcO$((vIz;%rJEwKkn!XmCSS7qvd(!Sg=dZ{g>L7399Ye z706QIKxf|M9ZkK}d^#Gjr}X^R_i?V4Mw8*PD0X#?xe$nkY#+uM?Q>`w&W#_q*@p7iMcU7>&`EcR=j|X(*7C!`Cj`QW~fb|p% z72$7W6mQ4?rm|f zygFfQgmgr#A9oSQtT{cEZZ{`~=42&thuAP#vT2#cbLFMBnJJeAk1PM^D{njUTS-qF zc`ZMaWgT9;XZT(X*`L(dUA-%%wS)k1^Vr;TfjY%ojPOeLtKtYsBM`9bT5M`mc-pl>W9+aSCMb^1xAL zG$Y1I@Z6ONW#`jKWh;#hp|@jetv&W8K&OddeNA^1n@+5<$3&>bl=^cZl}j8#_gI z7gUsYd{mvhYy767MKh$OjaBj4Pr~cx>zAb@Xp2#}!KxbewmL|({qd}wNu_RZihhZ= z#!`lhnlHmKY`Vk|yj<9!>7M+mg(?EsA*K;d@w0n90<&$3ZPUGwawXXYYP}#IgFC1b z=kbMTBGLItY>bsks+K@+S8ybHLw{ioQ3=BpUr-dYkO%h`7eO@yDN}9ewtcSgOc~n= zW_6$L?pYy>9GcGQ%i#yuB-K`A#9fcB>QV1;;tAQXhL3PcR=L}G(~K7&Gmd2f50!np zDT{jH_p++p5Iu&^U902~AV!InrHY>osAyB)03F_Z9J|y9`YUA3VROij*Q!;VBWjv&6x_#ZAQHV@S*tp+Mf4U9k1?CW;fNV4koz?UjU*pGSkP{A z*H2^5xt2-cN+pd`7Vj+-YZU7%o&pLj@6L6S8QeVhHTFDVE+9!2cIXDZO6ZzFZ|I}W z$&pPrL2oZNmEiQCOD*VenzZeJ_A}ot_MJ~*d;ioJcey$f-@JxgEB0H-s2P)3yZzsj zy*)^WMeDtsujRohd1_OHhA?mF5K>;`hAz{NJ?#1P08)dzv)?+FCd)|Q5o_hhj}gbX z%H}{?>Xdn~znp2R__HUc35g2i+=E3jO9eI_s#YUjSCBJjlfwbY*N-;xV;E-JDN+6V zHZOl_Zi5Xpab6DX_p&W%>h@jDoV@o`IMY8>1$K?bv-iwX+gZ$=9Dx8|mER}E_ z;3UB`Ganc@^m|xxjszNyd-^;4v9!&^P`2Qf_5o<3AJW>aZ4+6na4X#sq>$aRITD6V zj70b)0sr9I@fhIalfZiqFX_F8&uiMC$L!uD{j^&P%Wy>g>)>V(tCY3jlm}uIwsaab ztxAKe?IkLW%R-*ZpCtDH-5ZHs4L{$ZMG-G zo;DMdH zV%1#ZVE(dyu}a|ad;e4+cy?+Vl!f!UHvXB-EW7>{9AU`ljR1A5!OmUKp=AMG9_u1p z#p2oX`0+9ix-qH59sJt9WM^`}=F?n#vn2M>UO(ZmgHMdfORrOrxlx1}1rQzjolOLc z4*h}zsG{t0UxYrc5psqrs_IGHx_nx zUi1|6-iOp(i?4H1a8{#-A@9Hm0Y_L%RHT9Kv8h;6b&nh9$VNWe-N8?%ItE2lXYZdg ziR|pel9Bgs*_rPslstg`o<8#cS)k;(qK2DKA;b;TH0^uf!--0b|1~19<5r z(#hI2)M)BZKoy-G4%(ZuW59M_DD+M&@n~^HXGvT~(+_=nFV2~JaEh4&Gxez?n!2f& zs_%wC4-LIcSp|p7HpVR-I71P2pRPNe>FS_(%N&Q*t5b)X56?F5yKB3Iub!Z_$^Nh* z*D^XjJl3uPwMOJP2ToB6fc#SzFR3Q3rd5-5#u+Q^h*kCu=%R{wKt*BFxl*Z z^7Bun5|QZ6Ay%u8EZOZ@~ZvFx##=hnj^~bb=xE#7iN&sNAN0;z4j=$oL}1X%qi_+U)k6nFylT*PQYcD^puUM8+BWV7+m z$~wD!0Sub^Z)JA>??*`k&`b7?q{X*l!AT0S)|T<2GVHqpQ?w*8(UN@69|AEhY9V`5 z5tR%Y;v2#;?7~c+r=Rg{iM>^h58iX@q`;{Ju&*u=8?5EBjBj^B-oD1UrC0;82wOK*Er4BEMT=^FE^sO2s1l&)Y;rm&ndt zI64w~k^!UZL)nt*#2-7RD~ySa@&_139uZLrUc*%v;vw&`whhpl$~gI?B|ZHn5qIXRd?-ZiGDk#aw-%n7-$cRf^&d(?)fwNnhcIu{r#QcXbGuK~+BA;G=7QTc_U0mh>?B(SEN8X76iV}&*BL)j3rTm5skkPXXiB;A5 zxWsAfJR44Vm4k!*0`>f-BI?p9SP$KCfnqoWhO$(c(!7O)Bu*U>@%7`Dyz#={k&cYg zxc4Z^3zbB$;gW|;mso-n*r{usneZe-KTu&5bVPhTcZQ3Z$0ZAjM-^UoHrbH;bmV{#TW>6KMgI&*lIh8n;XBBc}DtEmD9SehLA7;{ttR^O}eIDGNR z=;|Cm%7gH9UK2}NkSCu_$33zu)>sx8fcXvCRuyzi)d>Kt@_}&5cJ`T4c{t_8X4~<_ zTk7EgU}Km2DAT!9`2g!>$nQ+=b5i?Uk#EUA4AzooPK(C#LBBxT8d`A;@>X)(ux>FH zFeV#Y0;_kJDLjFQhx*I*O?xBi*H^!i0Z4NY|8Meu`}Lj4-AK;Z^OzTK6wafd^^4x3 zU{Z4m!0g_qj!c%n^+nX5LZ6Uy2|eJ75Deoh3A4=N)F*I&elywa#2{FGsHM*m$5L<$ zbjseou&L-g7cp;I5O%1NU|hgIRj@a9I=5qu&=}9p9>IaKQmxV*3JOG)n=V=e6pI8n z^;?epTHE`j%CMpmv6;b!oQ42tN;=`>@Q@QH^Y6rM{6F%Bj3h22;}zAKe3}E9KbxRV z0E|8VVIj@4B-J-T6(C^Kd<#e~9Jy(U905#1PCa5W7-LE$ALGn6Uv>jITN;$z-y@m! zshgS9b5+LO0M|#L>*oI5JPYpC++D#f4-d^}F=s1`t2?SY6U=_p!YLapp1*%g2EK7& z?Y|jiD;$q&NtC@UX#vc^N#h8>#i#nV&o?f^iPJRy%@%JdI@yDp$>+o^apvKIjZ17# z36csue(=rLS2CA9Ll|0y%lDwC_oRXkQr3en?eVdDqyTRNvLy!htpw!i^R?|~a`;y` z0-LEz17{fHHv(pkZ_}Tyn5ddl)?o-zW1fqiCQn}OVR6}JQ6Cm~DwcZA3{KGj$cWm! zPhH-K9Tdb>R)0Q!O9ns$rwP-;44& zuo1@uBLeaDP`k6miY1zbg0;{ozA!`4NQu0~Ko=HYH);z56Men3I0dhMZUv}N`*2A^HGvHAoM^=@vK1;6JNY1tHPt%nv2+Hh@>sqv)~Aa623+OI3rWXi)0H ziZTKM8_k{a(Xjd(gs}OjRpisT=~X>72(-%P`mc+_C}M{=+HXcK)7K`>p*)JG;mE{B zf|_tpIh->D$PovbdWY$fy6Cy7A2GM0^Mv>7?5ZxkE)9)$t*+ST9y~G=)zFjT2~Bj! zWIbQJ;h)#b3JC2q1Lj30mp}dW4LJ6rFb}idEZ&MRiv`0!^FkN(f?R%HY09XGoiM6mO#l$CF5vt~~x;e9fnOU7i2{ zsV1aK4)7v8VD%gKxfm@@6sUO{FRIXgBgT*@1>@fEd#vU+s@`A2RW?e zxQv%c`oPbmY0|i(hWO~c(#b2yrwQ?i>lf#Yg0dQi8abw$OJDlkqi<1^?=Gvz!(XTm zNPqNBfkJR5z87N-QtQlu(K*155_|a!GrDHz9$FU_e>;|E#_HorXN@Bdi{7&(NL}WS3mSm5U0aV)v||E*ZQgCQ!_G$&temOSB!T8w!4ZhS|-qyQpvQ@m-hNYS^K(I1uCs^ZD~%!9#P$ zlQHI+!|`Jna~5ITXkniYxw@EW!?(T#vbCBVv6dCh0qprG%K&*Z^U@O4TsS-!gPrR= z3ew=+z+;W(ec7h8T?~zQ71%`Ov+&oOADBb46W`xOl_$Tjxqvp3^lqGTIy@d63|W6p z#$Yw)>(N?VA(wLx>Q_irl~mOd9dvb3S?=pJ_?t#>aG8y$d!=T1eQG*}`5`w_~=kMZ*u(nkasW6Ok8P zkYfbTX($n2l7y_;EY-h!+a8SBP3tfRK^Q#IFOM(^J=S*r6wrh1B6_OP7B)XDEK6Mv zz4g+3m8AML+1_iKK+=j*En5e8>$jILK9R2Ai^|GaC&k+?tTJhxB9cGH z1zq(7@^&2prau`xwIlW`AeZDOL#a7#gQiUA)VV9%#$g(LLHnZNKAqyfXs_j6?H}$I z-?RpBc9weE-YuXYjq0R3_2ylT}xuNg?oI;574GW>># zOPY@##Xy%xYYz3_b5l7`d}J3^%`xgUR#L0


-n4K2%?rk?jVgA`I?F_Eyn)Nj@Y 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%0DF%@%3EnUGDLjUTU?7cJv3RA z27o^0vlkM%k5;$=@<_;25H;uvO{tiBhCzzBw{c@Q(RJUtMCv0RZLcLZw7Ea%Hv#NGPcy009wK96d~mW))t^e_44ALjIe`1;n4@qO@AS~57dz50KoYvT_# z@@^Z0L{53|#Nl|g##-&B@nl*vl}VyKuun;RONn>l zFh6uD+?YwP1FWs9(6y1n&-+O?1G>KQ<|dVS(FAd$rSmFkdHYz+*h26Epi`lFPb${&E&bt+`asP?8sx8uY zSaBP={}wpvv((R;$~(a=KCr4^pjWsU0QC;Xf(F{)7Y*ygiRpFu&n8|iBd^)V0E3;= zX`(UHd*4^yL$df`;Ld>P9<7Z5U||UVidq7WHn~QsOQ8>Xc8=lsC3faL{tDs&RdpE8v1ge0 zxd*P;+@ZXR92L9fC#(6Vq2?V=Sj^!(Q^!*s|WXP_Y3Ewo*5lKxz=g!m{t`U&M3h3EGr zeIbWf?@nh%)WMIhUwpW$CCk11 zjsD%K@PRa*Amuxf7S81NvxPyizL&>`n~z%6zS0f&32!DZ59m!jP5YEgb>TSuv#;-( z${q4bq?adDKKaHs+M_bJw6lqv*d@Z^>LJu<(#CvmgpW4C{ibVY2|sd z7~b%X<#08sLC)tIFo**C4E4l}WBmEf@pst^_n=A;%MYF+R{L@`6V--|0SuwvV5nd^ z{?Rq!xayj{!=HtC%rnr4_+wIpyAQ7S;E_sw$zz*&aOz0@RN9N(?O$j>%s2&s&Bnl< zhzFr6jhu`hmdxA}r`ImPaZVlLIN?E{32&bKfZrBv@JhBOY{m3*Yq}tMhLPRK_7eDc zL65!1!fc6Qzn^62Fk3d8z<++&bA%I$pxDkCVyG02rl-y)TvO|B1O2b8?eVbiR z+sj#rg@^C&_a1|b>1;}Jbs>qG6p{f8_WI??8er$K)lz&Oh&a@o5#hj~wzJ(t4e(h| zL+@~hS`l&gs%T14kFbchpF|vr1n#Zi#lSZI4yF4e)hj_C?DpDpMFF7jpQYY zQyj2$ob`7(>Hy8CxYGpN+XuTJc~ z7?LacNc4((cyX`2#jxhz*JTtY@2WUjdo(E^*W`vHvq$wON+yM4$RMv%*+A6iyU5Fz zC)Yfo0dXL|1Sso|^Cu^LM4cP+S$}L7G>Ei;l;~P^(Wi^2I)~YhE>JG`wAr?Q1Z)3wo8`f?c@0$zY1>!;a`0NVAVuW z&pY|Ix}S75u?40%UYk&l#}lO=NA`LK)((JE*RHzJr>h!Nc^{A}X&Su8Op;o;o8Ab{ z|9rD<^i;r5==T(+#`Xh0R}>|G8z^!}Rru<*)NeSuqRz=ia+wZ**KkqEeUi(4Lg%9B zOxdWZAoiA)t($xd^)GqZg{_C)N*(W}Fk1j>oXuaGZ!>HvN|)FU9wLhTU)awDYkZoS2wnJ!5C%UkXHiIEtKS$D>a z;05=S9!j0puOEAYH2fQK_QGx0M+f`2KsP^uurmH%6&F;QG(=eo4UyN+c0O*W*h_f9 z7vzRkapFU?N)6Tr^PZ~8@!Tm_f5!znxJ7LAk?j^L5AghzDGa+gyC`vbPo5^+$Xv}U{cbjUV0{NVSSKeta0-rU=Zy(c-L zXtX`h5!im9yNi2h&=_`hLceczxH}J`ghFzVj`faUcHIZ zOQ%P@r?tT?{NrY2dPd+`VZ=-xymFB&_W1C z<^M8;AX}qD^#Lf!{kP>8G;Vy_0iWYX=-O`;@jTf8r3AHUj{9yWP3$EZmbPV&r zlN?GFxGVUX`I6I{{BbuZnE|Q~j=f&Zhna38^)>S*LaGaM`im;T@{%Y`1iknbMAY z6`zGPMa)ZSHPmlvHdGxMk<4C|Mx5?O$a{3?yP*|*_{vBqSk_-yWMWf$!eUVaG)1Xc8G)TxPFr=@Ij~?jO5mjiJ3~21y!MnBde&88WeeYgxz$A(n`2aD! z3VeD0WJm8kez5+aRWn-2T7-=cp@oqr)AI1xJrM!?6BHcOuKW@6($1kKR$X~xEj)8mI zFd_9*s9}E(MGxdzPldE!7`^-05?HX9^+vhrJkLXaBfti0Pd2iZ#vC%VBYG;nd2c>I zkdCXoL$3oMp5OVIkYC(@%unt?7p|HI0;9=^{Fh$u#BJ)w2rr=#!|OoY30n)9z=l`O zoGU_W&IT>}kY&per3eMGh;N&Qe>5&qCXAw-S8+g$*dt=8i)Q}>r24Tm(_N2^11XUd z1j%m^x}o&omL8jS!GP)|0Z8Xpm6%@k`ln{)^!yKFaYyzXiXJ$4;Whh>P#6jI0_+@f z{kkOTorUhoz+|wNjE23%3FDMuwnn=R@xh-y4+i~87Oy=p{nC~F(1(j}v5Dp?{LWD08!(Wjf{OdNMhA@Y-kxFRMjC;QAieV;s zhUr&p`r&GR1ci%}uRmfz7==$wEIwuj=b^}4@&~1%;g7&Msm7@X8qs@be!Hk)pv~Gjf9HM46P;_P29vFa@gL$&aDkr|v=-Fo zRF8AE8OxMw-!Ha3weqhgAADlH;pXFzh`g>qVPofuCame3y@*hLY|VeB-{5&>y|C^x zbMB9r-%$QhM}GP@8d6y|i{c8??Y-vz&L$0|YlxWa{J^}vFKq%_z_EDS&|tqU;;79@ zbr&^{taQ&S5uoU9%J|7Re#x52DuKntNSbK;P+E3cb;|1xzA<)S2WaxY7fEtFy85FY z^xw;}x7Gin-sa;m;&^xZ5K+A0*3vJhcmCDC)FIh;w!>Z>_F{dC>DX{bAm4}XzC&up zmY~t(B%r;yt^V#0D)r`t?S&8~QusB-l5n_OeGmE`eZuCGxH6Ui`o}`PL!jV6Iw-JW~-fz!$ExM7-VbOZHhocV$w*`y|pM?HIqKqb|V>G+OlXn7_qfckU9CoJLG) z*@EC6bYMw6QhkA+Xt}w(x&!S?jRr%4YM@!h@?`i24p%ebB|6k@6i;oz7Sl;XoAzqO zmlnZQvQX4JsuT~J9Zax3onhMb7NupVZlw(B5-S zZjLvXUp1GM+um@Mk9_wl3)WZt@DALWd_q)c(ux{>Yy~~est5zXU~YMd1MTCq`mXGM z2nEe137>QRlo|%!FVB!ld``(1a=*Bm-N5TvY~1Rgqr39{`(>d-^??~as$0a4o2v}U zN1+X=b6uwpeN(rBhaZSuj7U_bh97*-x39HoC+-8pDLLS&enp8XkjlxmsWS6)Jy0uo z^4Ks?p%W|l&-mziIRpH|9;EdaUhU0imNDQ&RM*J)D^Pa;6iJ9r!B(D!xi4-{D3#>U0}e!n~p=W zH7BUZ*_6iJ(J47L2%6L&_5f2LImk^&3TQG3#FL|jqmEoF2}fua{~|A(6iIvl9lPGL zYD>DnrdQl{XLW|g*W}l*y2-B_;wmY5l}}V>Qv<$7@dcfiKQTU<(%0xL_Mt{amKJ%f zwupyI+GtWg%Z1>&!pH~cPyXd^wNlD0L~GjbGKkG~Oe`~s!5-gnx)2$ig9{LLR|QqF(NUXThYWWCFO|GIX$@RcSoKWDI!y=gii z@qd*c^`!Zxxf{uxWZPN%t?Aan!g{q9=~V)h(W_W6?|9iQ({8O;|3>Yv6`x0HIV{I4 zV;*h_(?5k290Vp6^?>Y?&{y#+lsoeWbn8eLQ?kXYe0-8H<7!`R z+qYFAb}*covp`?|Z?{0TqhAxpb_`*L5i{$)6p&CXwK#3)-02M0MrCGQX`tD<-ce(8 zlyBp$rmR#2nT@o=#m%GS^~*tl!4B|06W%_4&y@0!MUzdDpyn(WJA+w=QpL7)!De|Z zbo_3&Zh9}TGjm?V$-d#M$q4G#XeiiVQ(}9C1H(yu{Q1(Rum=KDo)Bz7-$|h%R6dvZ z^D;P38>13ays3D`^mx%n`onBxI250~n7Afu+i4BB?Ic%(zrvSE2CtUya^OZ+J%2c} zLfwUT*fAIGe9?OSg$k_Imc0S>`T#=QaNstyx5|I|RQg~!t7Wemq*N>+yD7wkWI|v# z>GW%Ueoz*=ewci^m)sRZgOFWDwrxiD86sK`zsY0d67odxLI{aBV1d0_08KZ|{eTe+ zg%}C1_z)eUim^BF0+#K<;{U+JsjXuKWjO3ok%CD&Tq-u~bVK;m945Ug!UEl-*IAFm z)=F=2xbXOnRnSgnZWS963cPY}Ln=%HQ7}2db62xxX$tA&2H_9**djNtw)10|Qu8LL z22J9fgZmu9N0anjLA*zIO5Sm^E~A8(U=^mhV)yZi@TcT~Wg~IH)(bn=xj*USee;*6 zesYzk-Uq*Co$B#%u2pPYyfyU2QYtwZuRGk<=QG>U<0vTfPQjL)_n~C*1b? zKaDO-`v6W5tJrD+ZYryFW8g}Qap<20yg-Z32R8s#e0|EyEnUJGtSJD9wM6N`Nt>EkyX=Z!Fwi>!=4D5xs_(uh6*Gr4EXXCJk zW~_6*Mj+Sz4E9UB#>;4W_(3VF;>)su{0jP%Si!|Xj>5QlQ|&#Q!s$ilS=0Oy_|N0j zN4m=l&wUMrV_hgJFx!}qscLPX90ZhqG?Le(jK`6)B3>mYpsH@yAoUML`6dXLBZWt3 zywXI~J7nnOe~}8kfsQ(k_L-_&n{>x1I^TY_StEs^U?}~-T_3j-2m6#=kxgmmn2|e` zlmDj$s5p2!RQs~jt=qTznZUzqu=Dd_6qq0Xu5XgM1@UbaYf6UaY)o#qSgC3^O}F-N z%O~TUR!z}Zv2HDl=vLn}d)zB!PhmgVX{L#)mq`52qj^<%&ls$-&l2qzr2PRU#}lxY zHHIU}47{w7AB2w!-eg>ax~ENgjiK`9bhmejUPp_;oI2CWRvF5rU66_Ao3@mOI zAn*7>a}Xaoy~i8`_`!YFoPPU; zG`=Fu7SJ!v8<QLMAHFC!ua~L)BQy) zcC8!hYE7)Tn=nzF6ihs3Z7O_;QP2PTv+?&ZfxyuFffo%j15W*f1I+1R7n@_tpYar# z1Yy$kWA(huxo6o$6-4<7n!+PJ6C}_wuefP*RNel!dvgB&-Q+|6X=FcaiVH@&n;BD$ z7V*XO(l}+h>o)5zE zOEdG&)$V*KlbthH*=ePBSTBZSdX#z=X@1gYUxEn*Jp2yld$g1=YdWU1!|NRQ<38LO z0^zjbV`?Tmq<(=!8|xnQf7J;JHRo0tFh*P=IERu81xTYd zUka9e;NI`vbp2cN3+y&9=~x1 zu;^MdA;<2eNj=G8E9n0b#uE8`$bRGa^;KvGC4VCS<%M%Qy%}CdZ%#i3;qjJNCRB7? zAZ`I+L$c`c*Cx=8<;}ew#M2$X{sNRM=UoX3h8P%mC6YPp=Zw%JwJo-aZ>Ux-Zc-DR zf!X8QIhY9BwORV0F8^@-)yf%xW+OL&b!|5d%pfLjGZHy%AM+$?d4c9N4Omu5h@VqD zK?|WI$&XIhTK-oog5*h(!b!6ol0TBKF*3xw9gLiqMLEVWJhN*KtVMib8W5~Orr!qC z0-V=#;X&pSxi26n<2tUBgg+$7pZZ}BEooX6Ign7kiH$=0z!8MA5S%`@2~Q?WVn1<` zJOHoIF|t82dCh}nl#`9NGGS->+`g0QR2p*Q6@7q{a)dJzZ!`l`a|g#9y(MvhX;#4H zX}~3sX@nDPGCK^r1TjK*QN*AfoiiFP0=oT%pS=I|or07G#PZlCh$~Eh` ztvfBfLd*3)V9idA{n<1tc<3Zefp3wM_+&;k7RA$cSVPY)=w5<8ybxaxaSIqLZiTD@Uo6D z@ zs}J=L2S(Cl_jjoj!-B(3tAtKPH&>!nYiJODT~KZ5O8%&h1Gt!5ujH>J#ES>Wu>cz5 zubr%09(>^QAyJH3ua zV>B+Mz4yV26(P#2osoAK7JK36gtN^7X2v_17v2VsLZ@EPqV5hGUm90gCT#QRgE>IbyF%VMGfaZQo1)(dR z?<@4|lJNjQA8~6*->z{*B79mRejU%-^jY-1y6{0BtGT75te3=3)?@Hbls$uT%zCl1 zwh|c1?9LOU-hU^s$U)b7socfu>$OqBuiwM*2(0$v0txDAUgAd@FT)JE46tMH{=isvwqj=e{ZD`c388$YyJo<5acoQREsM)%CI4 zJEH;zmZ|4euRi7Ff}4Lf)rvM5doug6MoIf|2>;;MTHX6rH>`h)vMsLj|Dw#x``u@3 zq*J_@E7bjC%QKA+ae!EQ46IELd5Ej=4~jaA!^vA4;Q|bW$;XdK^wv2{uhMAAr&VuW z`hVs>3&iOLWM(Yn2`y%QFQrR*IoM7B-ZzzZVSq0DF3GoVrPo=$OzfTl8yYYMEiOY> zKE-sKGd~i{dF!Wna)!vm_-D&_=awmR;cO;|4`t!oZ@S*udBp%%PB}$_u!krS8Zy-Vpe)`tp;;oIX2d5gYbu z!lNYDGCdO*`f z~MM(meY)9+G-ceb3N=L}feO;1Yd-E#dco9Oiz=|?l7)>l#24F@qAL1g@SbFCJN5$0%HEpg5RroCAv!zCFaE_N`83g zl^_}=x|{me)tt93dkSvyZ0b5k??0<(2{doW#F^NKmQ-c$<$dOXOKWvlcOlGg=Fe^r zhoe9pSvuQ;7F|cpSp$W0)Mm4G84Amev&fveQ9eB^3s;bGpGJrMk$(^8w$nF<9?tOe z+`38T6(vA7jh;LF%MpJ+E5!?=j{jP^^wM9&DyJ5hAN5UqJKVhl0!K>{)=$YSc#9SO zkDmKyFxHxx-HZ*)KZs;~mUpyZ{(cuwA<$^P9^qqA_X9L8Wn^aZH$>eC&HQjuzP3Ya zoJoxv$_)WQ4lr!DiqZ$^x1$5bu}T{>*$J5Qgcs9?4j$}NL&=|WvCVgS;!_Js(@*a(&Z>)y?cj8N0hgjRagr= z%mN<~g~U@)pU+UA^xS4@`(DiLy%;PmZuq!G_oxNUz8<+8+!rnMP>nN7p@fy}bf#$O z3WLd#mk}<*mm|z2IbllEV=%SGZyhc zZ~$O85389RjYG;e_e;W;N*J%b7u)~-!y$4Jdzb^P%wLTZ+I(<9I_aA~7j&u-F{JC{ z$w##_f(d3uBN{a^N}q{`CrZHEzRkc;ClU9O&hDxxd zZHYl?maawU;|uM${!P%4fy-czki%wHFuQqOFTIt zyuyaDVL!#P48N#Q+BupBVx~ZwI({O~*@~qXi9w|OOvTQ?R*TD?-dYiHIvwX)dYy$f zvy`k9^0J;U{z(KMoOh1)Cv8Uu-C7Wgl-u=Kb-mIN9YxJ*$(B&JVbHvp29&xmA5(W& zpgEeiDt3CC5*+ypwq9(tcPZ#f=VtU)H@JHUR-PWccPDne%4O zfXj?YZ^59{wx5FE^aL|jD3GxDGz#JEc}E;on$V+l~iK#Hp9w@qMQXBUdUKoE+& z5XC$2*t(Mdn^rZDM$>Edb}-qzw-N5AHK&PsdZ?BOs-&;9X=a|oUSKnd2}NKed8ool zGJvUc4FiGgH~$+RO^OAp%&G= zJ8UVYAd(2%6WK%I^t$zi9iO*fj&ohcQRKWPg$S_rLodbX;2*w|fc%58^gz3w*Y6 zb-;v>aDd6$yuWxcrbw@~S?=o*J^g`H*31)Z!_+9BTaNj%(^WawiuA?;lHc8eEQ$&xAT( zEmFx1yn{Jt|Py$A!0r>g) z^O<%c-e9@;lKpif!qzMztE z9xY?V*LzqK?bH2Uc^7ShbgMc9=E4$WULWu?RUU30XoOMHTg9AUjg*25prUn!_bf$S7J1Zk zG>|4@ucUier5loEn@PsorGrtA-9Y|@N$cx)ff6k!7+bR*Y5QD25GTWSX`1!4Dr8^& zWLo}mLsVd~yk3r*T;rs)DG$tu+L%U!dw2GDQs(zEj3qynQu2c~9=BoIVrwnNUp(^Uq;%5nb6)XXPhC0oW~!j?Maxk5?k!G#&C zPbo$<-yhW&eBM$QLHcIy$HV>TkDq*AL&1Y^*<*)L1Vb*YFga}5xvTbc(OCCOpnJQ? zB}az$Eh(p5@$pnCizr$@g-seiNWgkiO~SfwcU@^(_me=Q6y42>equBE3X!GxKU)M^ zN83URDz4fya^P+S-9R0&*QY4hGxCw%-tyxkeha!`Z%vwj$(8z*qNsOL%Bx-r)&hxC zTAf}sKrJ4UFh+fV6e*yr9dcoeD8U~5)DL6O#%CUs68qsq&V<4i-HP=t;u zQ&40r7PSBM_R-htLhw*__E)+FzW`{-f+QVN+)P90lboa#4+DC4KGi_2h!qA#gDXsD zGn=bOqS5Qd2<$_YFzF9)ZOVi!1Qx)-P75X^H&Yzo0eb7dbKuJ&v+-ElemO)q?0UM? zJ=OqGPkQAE>Ed&rCPy$?yi0i5*5@V14=3*pJ;aSJsv8KIgZf#02HJ>v42*~f!U5I* zqsE~~$|Z5Y?hZraE~&{J2nSskKgM{!rsW+w(>i5pNNZUEm{wjOezBBuIbGF|`Gts{ zv1aeSu+194g!7b%uUHT9Aqmf~FIJob6F$C>p9VL7;;dkd>}uNHn2QZTMSE}@d}yv# z-4f8lmU74X~-I?} z-_0tq06+ukJ`NjR($DWzhE#Ux1EmIBBmLv!2G@jh)rJSyh37fNmDLdW?Dq7wilV`h z{w(V01j`54L_q727`YTmeGgLd0~@p^H(TqKWA0-!L{yFdNnG&nB!ndS$FgKhV>7xeaCYlCaH!B1k^dEzYVC z1~+Z8k;_LYV%dln1muSx!edm7KtX_D+Ij$B=iWOeObfsIR}U4a%f$_j=S#(Z($!GeoucFgH`@rurI0H$Innq(UR>6z-Vs4axba??i($>B}W(ZtsITCMB_WR!E6F zDp;XS%1f}YR0)pQ)-z!0=_zbDrQAC*%7$BeiYi#FEndSfZY=H7u_e{pYFMc6qW|lK^D|m58ET@Z<0hZAKQ9QxvT>1cgM0lkKPvM0A%O zSX}F!e=6NxR}J*&j^f$%2vsWao(5FF9FiLFGmBm04iJTA3BaSC33lo4A4Wak$)YG# zZTvU4jdFCx9oP-^&+$jfK`Zyg>XrTD1g9HyQDyIg&tQ7DDpi@ z+f}a{mpCO9B!F41vf!47Prr7iaeRwVkxb~*9)9g7Bx;1A({u2(gw-5B`x`u$4Z_+z z2chq=loxxICjc*ucR7OyYKy%Bifn8?j8QmG5}s{)l+FM)lH}!W9P83xqX^Ej9!h&o zWOT;0{b!4Redc6$Sa;?vJU@)I#2H?E{fTFxqDAG`r-T@uq!(_S@5Rht2nzMN8+r@W5nTB{m(NSUZE^FdW?|_}wX?KPRXmKOG zk(W>zsGl1e_)yBT8QFV5CMc(eFpVPG-&{}iHUH^gN{JS3m+2%zzkKudvG9s*jYUqM zBPh&X2#OnK4=RoRglYjg+wBQHB#`#eE}jd<>I~95*%m88ISC(tM~Z=o8RjC}l)!`| zhA`@x0fk@>wrM7Nv}s4BYB9MhFX6HzM<4qEjS~zVL;i+E(q@|;MrsNnn{Dkequxnw z&|;J@6hYu$x~xv3Cx}Mh5b5T0Mffm9nbth#s?I-UEC1^Q%pF7!0?qoajX+{$9SlM) z0R>wmKu`$q-|TOBzCL)5z!4-CcZK#*b4@O=VaM@_2+t?-;moM| zrOyS~M9SX)$*H+)DF}0SlYrof8KGUt9h3DwrkJJk>=~y`Ohsvx<-{*Xon=Rt89ql_ zaeo?uA=C8^`{ZZ&{Lj>T*ZEAJ@UmXf9C&UWFE~ic{2|(Y)^}%J_laS5z!iQlMKs-e3qw1TSj}6(XV>5Qu_)saY3nH{q>!s+{O`iQ~Io6;Q;Idhcf+W z8>*eZD0YKu2tmkx)}E|>cqYu-Pr|ipb>8#B@;d%&<}~FB^ToMb^dm=3yAi-{_1`KXIbs=vx8%X*iTn9U#5iaU? zNx)(Ofg-qXk~qah+V8`z=>$sEZoQC~#nQFH^XL&5mUX^vVu+XYsqtDvQ;TG*d~kn4 zr{2;PAB15b1M(JT>A@!r0~H9E=<5g5XnmulvL|cGPD0nxBcJYLPV_DH#nV)05wjXD zvim?JvFe!%|4xFI;}Y!ICigacylu9ElDirTN8Z~Lo-VSNkvS%@Np5SnGdPqDYm*?vho}h zmB~7XMy%_B^jeF;$zkMhk~8C4am$!LE2H8v+rN?t;e@Ox5@;t(nBg)S!X~>;&@*u4 z*^LJH`?BGRw`QJmFw~oifG}1~e75`;v_I|yH|VnXN!H})6H30akxs{i&B1quqc!Z4fCVl zRMjO34o5E@o$0c=GfS_!<@g%0P4ab>+VuiP-h@vivrs?|li{E6AznSwKVd&nkz!4G zlM-~b=2>|H*`_-;=d^Vh0%=Xn=iY*sO6HL-7d8OyW(AR8;FvH#`m=R zwO(oixn)28BIG;(LhcF}l{t0G8@_3}@N7T5oISFanj8Em9t#_KSnp;PwhUH!lJQZ{ z8%XUiS#Gd{+XX|CDf81dl1Qk zWgBOjHOyvLbEoOq+Iu^3@V3QwYh%686azw&$eFCcZ6T0UGq)>dJ7?|!bd-yxEoV*M z#Fq5vxnyQ91G8!5VSRFK9H-BfsfXpKBfa5(hb+-zl%T`7Pg-GYqKmwgEg&Fo{;)9 zdJ}JIW1L;0@H|bq2)s6Eam+!MnthVk#(c~pvtHh0^o>|Nrx6ylhARIIUsGU68Gekr zJTWK3b5N!A#@)EQMJFO70sq79fbBS6#f`=B7b;ZP8Jc{alEcc9NzdN!Iaxh>BVn?G zH;kH=Z`<6ac-sxWINPg5YJa?FVxP!l5HPQPfO6)K%=?fSo=Bt%%cvYy!w>gBY)8M1~$vAF}{32+a68sseLli@HWp8>|%qf5%}As0}y?i zLHv4SA3WMVknBZx~h#f|LWeK zA?=kbz4K)s)umo`Xbo0w{PPEV4@f53?JWfsD8P79-oklZP><$8D!k?hWsd6G=O1`N z@7gX!y4r3DMYS@)L<3r|2bk2Qa$neWYRpljSL|TaD`PMGaEb)XHI)a-&ZM!6EGF|n z<%JLkv%pIjUOkNdIQCjx0p$+qCKZ2wT2!Z+c7Zi6_EHnQt)bYY4lNSmQg8IQtwri7xBJ6u)n`#b%=8)p|{J`2CK97f9qM0 z(AkKimG+8t5e;P;zAm)ji!sx`HbB2VS!nlAj$wsy1J-}F0Y5vVe?lfb`tm*ZI>c0n zev7};rR_o(-F2bDl<4Iuc#x#MuD__PnlDLn$2a%a$d>ey@u8!pH(@yHc(N&M%Pqh` zB%{5HP!WlPup)AfFirz>cXbam&@>*BG&$}Zt23ITiFQlNbo7r7P`kel$9Lscu7sGY z%+O6Cm=`r+rdv`lI||F`ruP0Ng(lC~kANV};sAwZ-lsmR?~Gh0r4F}e#TU`+<8_bu z*@z+S@X&Q;v?(P;OV{1gKwy6Rn@b~Z`F50^Gd^zqcu`io>6)91f~wAfdaqPi zvVNbKy~{B%D9N|us7r03JkYXdO?AmiuN~Wce~I3n zXCZj#6uagQX1UnE9PbV(Wg*QBCIqE@j{h8^?#Kuvnp?QjjsY7L5HutJ+>Zf!VG#8? ziTn-r?%T~T`RcBFtSHc7fVCU6kYVRbc;*MwXY`hwyj6dI+^m~xgGL3cKmx|y;OvXE zDZ>q8S~#GvHFW@c)`!!d7B**&ILJN&n0W;5+v9UXhkSutjke8(4R6E)6EV#Q%V(%Z zM~_cHt^OjGeKWE>>Y*VSBUyW?7}}Q>#E?P^XF#odC@X0 zO`*L;`i$V;NcZIhA`cAf?Z{-Ump9V{sW3clPdhTG)H|T+jrHjgq(Qi&~F4Vj7T_*=jlR{jCyc+~B zd+08~6^U+)bNVV#nqm6mw1j`6ilGsLjLF{QjOFwndX07*sDO^D$Oo`DbiUVqu_1)k z@$_3gg||Q+Hl1zU1jurX8KD*`&tNpndNTQ{ibgc?cj>e5rn+@xa%b|dkzvDU*vDub zo+Hpfb6>NXP#Kz zM~>;`vJn82*TFTTJ{7~S(ZP`}D^_lG7W|PK0A^tFxjK$tzrKrNwX#+OH3D_AF$!b^vNVp#q&)pjvfW=XOLo!6IDvPBz4Vp zmT7}Qy%p|~0_Eux(_#>n|2Pd8z~bHYf?#y)=gM>KPGNH7SAqT*LfjG2okHgox@3`m z3+D;s{sCqDPP1l`jjlZzF1pcs)ZHt<$^-RC_(ontj3x)Rip1AVf~J@q+oDBu(Yweb z6oDbq;8p;e1sr#=-Q6n^fLVT*2gkUk?Ir??<}(I3P0$q^#C6yjSWqXK9xjR&UKyvC z{`!p=7_#gvZ1avI3Krr{A27RFC`^`EG0yXLqT3(fLH>V~y=PPtP!}Z{Vvqm|2_QvU zNN5TQHk2AlfM5Xym0na3q^OAW-Xt^$prUjEE4@pvVh|zHn-u9)dJFB{px?~*X3flc z?+?r6g5;KS&pmgabM`JO(M;@M=2?U`I+=;VcsG>pvREIMpjTM+SC^l;QQ;uE_7>}# z57+MFLLbv&B&aTGi(a%ieE3E9bsBnxh5}jsT5W;B>&(j^2H?J`-2N9}LUu|9utRH( zeN4!J0agoO927mV)2W4qpo9#Tnt;8*9+f{1%yX7mJ?}(?My$d`3%w zgfrE@CtYq5>6DN9VWhqr(z=gG(;uGzhE0?nej6Q`CyT0#NQY$L{I_nmW|na z-nFp^Mdc*RFvTPH&fR@?clhl6DQ~mXAf_Chs)TK2>+ODIGXLmwGKbQhuHH#y#M3zg>^UL@v*sq^h#R8VyOEg=wN?;Atsry4iazH_y(>jz^ks?Rh=|2k z$LQR;OLqqq5%0)i@#u|_%x9Z^@H#pzq!;2`P^DtnKovkY!*l);>42)KA9a|rN@JUi z>;l_eGK?r{R)7rQQhIGXRK+f>7k&=Nhb$(i+3r~Ej+%8*9%6FzVN7kkj4)%%D<7oMEaS35nPjGxjRm|T47Fc1M+?YMzL;ydE# zub}xJ5)K{-E4jj3u+5tit3fOv=Ko^kx@yHT=NtC!G*8=eP61z-A4ePi+2_1}>Me9h znB`=zF%7l#Lft1GuyuXQ|m7W+GzKZe`uIVNbn`_E6GrN=0?2w zbSEu|OcJa)?~jht`wk!iU1}Ba>z-B@DJV|StDKxSES+vR5Zs68xIabUwbv}$es)i_ z%Y^zB9k!$-l%HlZpt}*aT}`LOnRA^a*>_aQPfCqV@k{j~99=^D{wKP!t_R%p;(dmm z;p_K39%DVj_HcR^D4{JUlB;w$mTNUhHz_n_wd1z}U3`XBs|2)MZwOqvetJ`YbX|QB zB~hL{mF{81F%#?w>ax>r@e677v2Y7mKQOFkPUux}9aH6Up=*_x`hX}5(+E&rM&Z~8 z@dX%97Nzjnu%i@NPk1il2xnO%|5f_!I?nOZIdTi}O~0SDdld^!UyOq4P+Pe&zuC^? zqQf?k_1Cgy6&m8Ycq+zLuvkDj;`v<$eJ7jQp&@|D%wZFn1hmfugd`T)%b-*~@#7j4zSIPsv_0er!TLVV+ zUrtrAXjBekbq;EMyf8ld7@Yv3-QW=At&j|_$#G|$TjMMq))C+GYABiqz@(i5vdySU(Uc=sU z%IvH^+oWvPgJMakX!a5MXd$Px$z^5az%BzZ(XN}-lI>LgSPCiKJ z(FeIP<*2WyOaT(A>LV*oa`Q2B^cN?VraH*oIJfK0`1>S_xtBThyDu6e;P%S`*yUTC zXuL%qEjQ`PYvSRy__Ni#H}_|r zrG7Rb`hOi-Qs3$*S-?cG{K!>JVcTChR0%qWec7ek{B>8IYNYz2ic*vCkjO=t^rwMe z1+;cPU*7t^e!v}=jrOj+zQhY~ju{me$cfPP8?FU3YY;Inu_CN@yY46d$G7%>yVt8M ze&AW2;M?o2Svt=ALM189$V-Q=kAG+LTHNyQi$zhz%AY?)d=CxD4Xjw6p^#2EHSC5NQj!}4Mx&O(^^}s(SXWNRw;B0Qr)+k@7yXDDRbLNNF0M;% zv;}c78YGdTD>J;Bf4$oZwMnx${aeP>YVP`TW$yunRnFtfSuABuKF?nq_Qk7w z`56?8m7q&;m%5KG!MJ2Df|TfO?>;BHgLYzMYYUEs9=7!Hy4iuu!{?9~Im{axM3kA5vMnbkhqzrQ4DSwn?O zyXJvx?={bAO+UYKRF1lZ`rCAyky^g*pgVOba3=?uQn8R)$*S@o*zB8$B}oe zi)PjDz1+F*EGOs*Nn|Ct|F#WK_F->3{p|pSyDC20*`Cbws$)t6qJwP7r zsc1;4l68aAbM%5pn^&oAZ))BP|l&%9gyDBxA-bnB?@!0XuY$e_ipF zFP()L&kLtDm8t2gEI-TZm7#rw2}Wt?2~+SuSsAO99s!5kLQ#K<87cHGzyr$rx^)JbiFRA z`}>S~BEy2HueOPY2RX{b z$^hj4q^>)09W=NPpnm?cdwwjkx;bm1Va6gR7D?z`>pQ3TD*Vr8VLDRrSs0dHaJ0K# zh||{}Lu}Tv_c*e&Lr|vgGT-WE0M!;ugA-RSp8=wNhNuz8J@z{iXg(-YRIJMe;`m0@ z{_YhI52mVTPk$)eh7EA#QNoSAUhPwf@P^jb=4h*Yaxkq2z-UDY3^HCr$Ks>AK41?ogF@KLw^qEHz_ zZ2oM!+M~TLi-nEWL+Q=jIQUanDQIrt4C|%5+1ZZ92hT8%LEEcQD#xq62sBdws+j0pE z=Y1xv!YwWZhPW$Ao@Mdw$sFU_1W$gLhjO}edYjT@goD$a}Uh}mSRb$4V8-P+Hm}j1EvZG z*jeU?Im(Z8Z0QykP3p!ZpcP($G%kbwMK{(BcA$ME;Gc!iZASbthBiL5nQjZOc7q>z zGjul6ydtV9{yP+Z)U91BE;E8%QQYU|+FeG}twnvvCx7y%f3)4#VB$U*^zqSvE!7Nm z|G8p+$srYaP}C*sz^Qf)i!r-fV=Q1oaZ<8;W(a8nw&W)4^KtdP2;RZ=C=%b08SHQo zIx3L!hYMA>5=Tp1>U+u{Z8@7wivVA=+X2NN^8ioUVTXVFsmBWFy=|bA<_9KEi;}## zI92wDMlwu0FwE!1Te}f;2j}w}O!V%@#I&y;$!CObQu3? z|Dnx7Teu-ET78TOOYTs>FH;k8A1E zi>r3$(}BQ|ns|);5jB z|CA}t@Q2JsO9kd|je)wM9@68E~V(ix*H#FLm)ae6P3${J|vUmGnF0 zM|IR}60prPPD}$p)h(9}zp(jw`_N1lT@{t1%%|xuy(|!118F1EzYLIy-ISlsa0fxt zIGCN>a1rA`NtNk+n8^xpXo8Ec_MO;HsJ!5YyAfLP{-CbisOFHxu0vI;V1axYq-I49nR3wKP3$>S0rv3^-UH zRm{)H-B$Jxk!QbyNAMi@D;$dG8fU~(YLkw6YeMtO?US&2{tWlSq+j1+%Ifog+s&I> zPjH(T2Qti{Fn>g}5ONm%rKOMRmCRsWYGCdAeoDVRxC@rx9Rb6Q@SZtJM-A`g;TsWI z4vM8&7Oq;n-2J){)k^X?f-+KpO>S4>{gEJS?&X<8=*4~eCB5ej7WePRhXJRDdz|ne z{|kyoh=p$*l&LeRHbMOq_9NIHgV>dI!lQ+Y&Mo&rVNsaMuCs&3tm8#2O;_~}|d3`1$zs2By$P&;uxf~oQCSIA2{wsMZ-_JtJ zrFMIaFXdMi?by;?f2MWY>%R9Z?^g<9RZ{zXt8Y9DyKVX(&1~M^G+*y7GPR@p*z21u zTnCIGh1e^mHsC)>`Y#sk-kVG+G`;Nwnkc99fr5?xR%G&T>8W^!7Jbj9P*ZWTywT{J zDe8e7npV`TD3IJ>cJ-Z3R{>P?-k`7lVB0}h;f!A)o>R_S!?;&*mUZRs2w1w9X_ZSD z4&}|>>n3lJxqWSS)?A4nvs<`n46&8~Y#b8EnfO)OUhKI*u&c=ojm_dy{k&f^S<}|n!&bpdv{;byX?Yjsoh`m-2HpGE95>2F>D-v z-fHjKkIJ{>D=9S&KT9SPZD<4!4Rrs#yoPf`D<2Xv!XQn9%-&3<^U*tHL887gQe?S=-yh5}(!*Cp?bvLRy_kxC?$4oFem zz8-?n2)aYkg;3V*mIFW`Xn!Wq%67+QCHq>^T0|e%1rU{S`1I}MuW~88+11~>_klc@ zUGazF>h)<_rEph7tW0WO+!JhCW&Xj)Gd$$^AM=xynB9BofZ|kyyyDqaK#dPhQBD;+ zXV1Lshth{x)EadTRo~PU+@!M{2(GuQY(4qPyjr{mL5obb&94Vn@9#PcPW4beVTfy3 zkRN$ep~Ev|G4kIepHfAvw!~S1*;#bQ1c%sM-~cw)3MCmCJV|u=QvvZK`9hWfzg&9!mOaSe+BkxCMd!8L z2+s^S>J6RhIwTs2D4foJ7;{ZhADkR|3gg@p*9^=`hv+`E<=`H1f(Um)V;z|J2O-5bl< zjh;1!y%iwq;r+(BD+|=>&U;o4MG6N8${Us^srv?h)*EKzUxFq!zXT=TeR(T6?hCX)>gy8R7)qj&4RtzZ zIV7Nc5G;591SMOpTMj&(qbr!BxrlMGo+mG7XL{T16#`4M&h9Q6>R4)CY@Exss{%f8 z7x+Z5C8jpsuPUi~c94oxp#b&>(DPtp zy4@E9jxmjZyH6wEBGpfvi8IRsGtj5Zxvl%?*?=kPQ!>1$?g317+dA8F_ukx|aU8e+ zfSFP(ftgvZcbibXoo6QaE2{e=4^-yP^ULl7v9jfFd`WLSRlbWv0ChA6K);&d`1e$q z!33So(=vGuIm#O*U(w1gQDtg^Y@oRq_ZLMVFw6ONL;R z+M-qp9M+-u!?F^~a^{E@foJZQMhKYij0(TAH(jYjnUpz8Y?;jVT)wVI{Nq|G2e#4H z9$*mHN2Z#P`I6O6c_>cw9-8wJXZLLC=zr8YT=s-|yU<{M21Ce-avV!>M^V?95pw3= zRw0eC4X_*kAt-+ztf*EkMH}`0dQ^pJR~GZqt}QQfL|Aot;iK40>-0Sd_YE$=fm_Dm zRiF0h)T;?$jb=|;xR63u5z-<;{brcFaHS^|4Q8SY@sd4(*CY?Ksy;^(;&Cjf6p|9o zpXN{l|DgA-W@qfi&kOAzl0GCQ{z>dDw*G8cx*%_vBx$3vF$lXh*N)Y6MwWs;rC z5%$^i=!C6LF%Ey`weQ@_aN9}UV@yISuel0bhqFNgt4|_wl5uz{#-)1$l!9IRjWI^h_H^(u~wuKrsmoRv_>U{rPuf(iwc(pi9fE~v7 z$=FajpXpjvFFb4~9Y$3n+AdenZ$*~J+)hT0X(VBfMas>3`rEk)gA-%f~ zKJhX7Dkmd)TwrRlKR7axXVE{^AnT49P9c!i2B)Ovc0f3r%Jq>P6AanA(Ldw7*0W322sWaQRNP}0tr$TbK6{r|LwByA5I zQe-2YjBt!V={axTmUgC`rZMk4cYT)w8mI`y`a>B7C4q{{FZ4I+BQ{ir>{=1y?5mPs{HG=c)`_g%V^?4|7)HC*|hj0U6$8G&QoR5SjPyzQwwe z{>OXFLv@j?W;HPR=zP`x*x5lGid)X3`^E~OPt&p;3F@;H@|kOv&c1PsI{2J^xUGm^ z&Ydo%HH&?3=~GWumDLyD2t5zms}chOgB2N+StO^bHxEAGwtyj=#~OASBHcl_?M~-M z9T?692U|K$Q;!7&e%`E#Y2GLw9omXjR&HChCbc=5@&b%#f zJZ6`Qpw!3ic z$Go6l*xvpr8gmJkrTYrjQnBcJXQHV0K8$laN; z>z$C^p~@Sn62SJA&5$rSBp=>WP@xl&(Yjw1y61h&_wENa-BfsFq^FRN_=vpY{99!+ z5t_4mvXq_cy*K9Bpz=^5pBLB+7GHS@pPtT3r+f%I2(BnNLirn2>Ppy!DhL)0+|;l6 za|^D<^YP+OpYm;GX3ea zJ~$-qyuNTq(`TBzseRpi7}3?*=kFqAyKhc}Jt}j5eDjd`*ihU#O5Rgmq$rSqu(a6k zDFA@f6OdhltU6vQV(dJ3YqvJhdtz<2kHCXNVE5LeV^Lnk?Mo{Bl~qKi5%&`*zY!alD|KGiSX zwM&!tXZ@7B7rUKz=U(B*T}RJXoL+RXt?$C-V2x?HiC8x23}+2S-R>SgsZziiJlqN_UuqQ5Ww%bbxq zwmCeTnuLOj7ObKCnNWGT{P}W*IbjSFOYr zzgYQaQWn}wcT$`7{Ji1UGT$GZNZ_PU;DFE7Xk-ffbs!B?^VVPAk4c3`AeD+6e!hAT zSZxFkV@Ot?dM)&7uA?NsCmuNe_?_jLDx+y!_Vyw3fqBE}vF6sT zDSjX6*pE8@hQ{FQPu)%bXIZDk|2mLM@B<6m-fy}ABPkvEbovBLipe)&#(Q;R$cdY% z>$(4s=cmPDHtISQFI|5UsaFb7HhZn9B*cKJt^ar!&)kv$M?mp7VkI9*6Df+J5k#Vd ze115QExeVC$D4DxJtHa==bjzyRR3pAd#YdnyRsV>mJiJ7wr};+eiFE0^r57a_bVty z>ae2G?jC6|W%JIB1(^{&spbepdeq9jTb6uoFs5Kgn?$^4a|D}$)@QN11VRKHg;dKU z{VDjV$srZtGD3l~wP>8oFoA0XXw1!|UZ)fowIfkwz!PsX^8Gl6t@#i^Y=pkJJ{->- zuXf=&Q{e7&yAA(xgK*_Cc7FvsFM?Egql3iG6z%MQS9X$g5_U{3$z5Xpc=S+snjV?|@*{hHS{`qILXwPa4Xu z^4wU7jEzsK_hYpa_^#vSXR{81u7jmx@RcVhR<4A%na{H+ou%wKi*BaM!?!EB+DO=w zv|W| zLJ%CDec1>meHR38MRGuOup%PL>Xqeb>#9n()(noig61NRM6xn&joH{dyo9M_JeDAg z6lic&CCK8-JA3m3?e$`1p|64&HxyL80RQ z(7j3DOD7ehxn`QOa`x*85&eJFnOwO*AmtdTHm@&apMI`%!! z6~Vcs4oo6hZ<0qG3hscpsH-qMjA&9lrD0o-ORD^Adi`8=<@=x^mHQyL)VjSI;GGmA zCS~qC1b3l z4d(Vpepj{k%|koQL$*-Qt}Wbi0(5IB!uuCmv}+4owh5LWZ2#Th)EHXXYy&x!A2`Q0 z-pVM@js`dUL{=}XbPe0#;>HkxlY$A_ZKi8bIJ6JVxs>WX&tddT zE1F~X`JQ-fuo+&KYf%%4vTf7UHUlz>_R&{Bw@@aWBHd#Doc(C-k9)n$kkKZlF1~1S zx!o+?(YaJ1H{S;$N5B;{6yC4ymR9w^w`m)R-He2Dpl>_PQRE$BH=-%uOZsNNzG{V* zPyGV1k*MFl`;#uH`e~^;IY160$02vogRXG}gLaij*_h6HpA@HU-aGc&-EYWq&#-FE zuvu?9+oPxj?AxrItcBrUXFv^+*`Q?+ieyt;j^D_^Q`znD1Edkvt<)RaYg=v@$&sPU z5dDR%{-?9APW$u-aMhM_D30{>7AEn&^juY|dcFQ2Dyr?oCozh~RR1)`oIaGWj`QiM za0MBFy$}HM!hL~Jvmjd+TmoI6xNSJJf1nSRym0wd*QevEP1X;g0xQ@2 z%@LB~nRalxB$SjcM1R3=Uz6>%wG#gc13HU8pkR?CUwJO#0_a%siIPS}Wmi0Oh4r zO__C_K!qf^PQ00)1TeBSS(zL_Z3<5?+FOoEGMdqjiH!$pF4ncK3@O{1!(1x~3m%rB z7RK|_?&iQ`OBv7sl`7f%DpBc}>BVwuL_hk4!E6Y4t%8?8$?_DlNS5n9)$cu#`?lr8fmgty zhxHeFhu>^WYk8Ndx_RxbBt5G2W+GPscB-K`qum+ZM}AuXx~UZYxXm}hgF#*DWM|Ha+BL2f~}WB2@7a;iS!akyv;X8^2SrFzqqAa}qG3nCaH{ zXsQTAbg1#%-D^B=9L25osal<{yvE8WJ?h3?!=fxkHLn7e4WxVVqt%b!m_eV`A~3gM(sBUv{^L}--u zkCIP;G~dj&LA&YQWnX5GWTX;PN`!G1p0AsLP+F}ycUk3}dX@VJfCA!2@vdR^GkJuEMMf zCBPZAcG*!JMT1Qj*U1o6NgT!-fXrKl%WLw)nZ7y5qDFM2v^3uyBO#jMK)!uAXpTjuN zuihI2R1cg zp@eRQgxl;xi2C<6YZaWM^7~`5boA7CaC?4buR(8oHJlFu-$jg{m^sRk7Py4+QrN6v zE+R3H;wU87(|)xrx8_-~I8Btl!gepY=&1lcMGWLBqPYjA)aIRWo=hnLUi55~#*wj= z4iowt3l(EJL7vOGtcV_Gfch2OpKp+#`Iu@@dUA5fcdqD~Te@@QNn&#^-}vs$aMUwKBb(13knxRq=iGV8|t za3UiDM_;5smTTxD)EJ#c#T%7=ZQ*!|@6oPY@_o@2NpPN!WE#g>YW6xAuvB z_xCyN_tRly7f2-5=YKW$<2otp!$$1VLa$LdpV( zcbB+Qq?=(-0`Yr_uRpBqECUr(TwtT|yFR1|(Re#Y9N2TZs_uglC2|dN=syP1Sf3Mu zekuxz7WhgRPaO(z_sp@ImktbOLSwKyJqffJ& zN|t6Qs~4d_nR>;jSfBAp`(?svx41s*xr5;Q)UD(G#(}GtyU=-Or*qeasSe+fm529Tgcnl zZzV`SG^gO@ua~0zLX$R)xU<@0cU^Fz$f8B~BXyXdT@DlrBujvt#?M5qHq(k>S_v!i)dz(*$-xP! z;s>5-c*i>=}Xwm`<5~xag&9RYrDCyeGmITGi9PcMD1y1Q;>@ zz<0p&q-|!$K@(-X4xVxqkf^{SE#J=WLmJj^6=>N<^a3EYP_9!9O8f+5+WKc5y)ZsV zjZnSpk@9a|Y5S@CyHiq9X;rIy%P&~ZAyjaOkStz7T*~Sc(NFJj{?*SR%9kQ92fT*F zrG51|*tS!56q6{zM-co(T;FrfS}7@{;m+%A5&3D2c?STq@}_7O)S19uI`mi^nR#6f zK2xRb6ALp)}E1NRa%ZCN49VQ)j?03209AudyqKNEJp(hYjD&Q0V6Pp)(5es$sA6 z+R&H4ZOOL^Nb-yi8*R{j{tEyOn;~=f+}O*fuRV$_-<^N-XtwJ7trSH$m7P;(aRG#I zD4J2#9?>Pwn%3Y3m{2ZBulzV?cv7`hKnmfa;G$-|p_4?pX;>G`pO~A-q2RpxKBG#= zhbJSb)A7F#)SMRVzN+7xpw|!o4#Ixyhj1B7Pby^SIe8zeSM-EN@Kcbs`kle!D2;9Z zO-;9q2Q;u=9v~ ANdwCK{zg6eKJFxz?;;D155JTkjnPY!QZL>_&v!P0RrOA*V`{ zeM)x{YCLibzC9dc6$1_eclfGOd0ppoJ!Kq>bshno3%jMqz6Dr@cIv|9NnR;YUWm&C zZ}TehxS?*CF&4geuH{l{&Ft|TCq8Za`k>VW-gK;>tO-TL&tgbU7;s}yqISbG5A^Uy zSLJ}~+Zd^OEKwiWhI-tvK$IZ#^%BBx7y{k=K2Q@P^KHD-Gyr}P*g;qJaaqoTGzamH>KTf zey!3{4R>Vr%c@@DvHJCNleN$Dt}4|V;>$csJkgq0#t3ZsiQI!t4Stc~vx}}EES6-n zQ2C$Ej|~c-KqoZm<6#nE=(uO4KKx~2I|xCv6>=}bZUek)QBj-cDucM-LI#^&uy8PB z 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⁢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
sDr@Hx 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%0DEFv3z6WwOeziLyqf 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 Date: Thu, 14 Jan 2021 19:29:14 -0800 Subject: [PATCH 082/171] Update image ref --- .../services/gettingStarted/common/gettingStartedContent.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index ce9c861aba5..976d3e9d60c 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -144,7 +144,7 @@ export const content: GettingStartedContent = [ command: 'workbench.userDataSync.actions.turnOn', }, doneOn: { eventFired: 'sync-enabled' }, - media: { type: 'image', altText: 'Commiting a change via Git in VS Code.', path: 'github.jpg', } + media: { type: 'image', altText: 'The "Turn on Sync" entry in the settings gear menu.', path: 'settingsSync.jpg', } }, { id: 'pickAFolderTask-Mac', From 746c455458c5689049910b39044350cd98a3a273 Mon Sep 17 00:00:00 2001 From: jeanp413 Date: Thu, 14 Jan 2021 23:56:36 -0500 Subject: [PATCH 083/171] Respect multi selection when Copy value in Watch Expression View. Fix #114353 --- .../contrib/debug/browser/variablesView.ts | 28 ++++++++++--------- .../debug/browser/watchExpressionsView.ts | 6 ++-- 2 files changed, 19 insertions(+), 15 deletions(-) diff --git a/src/vs/workbench/contrib/debug/browser/variablesView.ts b/src/vs/workbench/contrib/debug/browser/variablesView.ts index a6010fa0da5..665894a0bad 100644 --- a/src/vs/workbench/contrib/debug/browser/variablesView.ts +++ b/src/vs/workbench/contrib/debug/browser/variablesView.ts @@ -35,6 +35,7 @@ import { createAndFillInContextMenuActions } from 'vs/platform/actions/browser/m import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { localize } from 'vs/nls'; import { Codicon } from 'vs/base/common/codicons'; +import { coalesce } from 'vs/base/common/arrays'; const $ = dom.$; let forgetScopes = true; @@ -393,35 +394,37 @@ CommandsRegistry.registerCommand({ export const COPY_VALUE_ID = 'workbench.debug.viewlet.action.copyValue'; CommandsRegistry.registerCommand({ id: COPY_VALUE_ID, - handler: async (accessor: ServicesAccessor, element: Variable | Expression | unknown) => { + handler: async (accessor: ServicesAccessor, arg: Variable | Expression | unknown, ctx?: (Variable | Expression)[]) => { const debugService = accessor.get(IDebugService); const clipboardService = accessor.get(IClipboardService); let elementContext = ''; - if (element instanceof Variable || element instanceof Expression) { + let elements: (Variable | Expression)[]; + if (arg instanceof Variable || arg instanceof Expression) { elementContext = 'watch'; + elements = ctx ? ctx : []; } else { - element = variableInternalContext; elementContext = 'variables'; + elements = variableInternalContext ? [variableInternalContext] : []; } const stackFrame = debugService.getViewModel().focusedStackFrame; const session = debugService.getViewModel().focusedSession; - if (!stackFrame || !session || !(element instanceof Variable || element instanceof Expression)) { + if (!stackFrame || !session || elements.length === 0) { return; } - const context = session.capabilities.supportsClipboardContext ? 'clipboard' : elementContext; - const toEvaluate = element instanceof Variable ? (element.evaluateName || element.value) : element.name; + const evalContext = session.capabilities.supportsClipboardContext ? 'clipboard' : elementContext; + const toEvaluate = elements.map(element => element instanceof Variable ? (element.evaluateName || element.value) : element.name); try { - const evaluation = await session.evaluate(toEvaluate, stackFrame.frameId, context); - if (evaluation) { - clipboardService.writeText(evaluation.body.result); + const evaluations = await Promise.all(toEvaluate.map(expr => session.evaluate(expr, stackFrame.frameId, evalContext))); + const result = coalesce(evaluations).map(evaluation => evaluation.body.result); + if (result.length) { + clipboardService.writeText(result.join('\n')); } } catch (e) { - if (element instanceof Variable || element instanceof Expression) { - clipboardService.writeText(element.value); - } + const result = elements.map(element => element.value); + clipboardService.writeText(result.join('\n')); } } }); @@ -475,4 +478,3 @@ registerAction2(class extends ViewAction { view.collapseAll(); } }); - diff --git a/src/vs/workbench/contrib/debug/browser/watchExpressionsView.ts b/src/vs/workbench/contrib/debug/browser/watchExpressionsView.ts index d933d036e2a..23ee7babf2f 100644 --- a/src/vs/workbench/contrib/debug/browser/watchExpressionsView.ts +++ b/src/vs/workbench/contrib/debug/browser/watchExpressionsView.ts @@ -194,14 +194,16 @@ export class WatchExpressionsView extends ViewPane { private onContextMenu(e: ITreeContextMenuEvent): void { const element = e.element; + const selection = this.tree.getSelection(); + this.watchItemType.set(element instanceof Expression ? 'expression' : element instanceof Variable ? 'variable' : undefined); const actions: IAction[] = []; - const actionsDisposable = createAndFillInContextMenuActions(this.menu, { arg: element, shouldForwardArgs: false }, actions); + const actionsDisposable = createAndFillInContextMenuActions(this.menu, { arg: element, shouldForwardArgs: true }, actions); this.contextMenuService.showContextMenu({ getAnchor: () => e.anchor, getActions: () => actions, - getActionsContext: () => element, + getActionsContext: () => element && selection.includes(element) ? selection : element ? [element] : [], onHide: () => dispose(actionsDisposable) }); } From 9c7128d8fabe9ed748e25511b8f183a19a4b43a4 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Fri, 15 Jan 2021 00:16:41 -0500 Subject: [PATCH 084/171] Fixes #114384 - recheck resources after save/add --- extensions/git/src/commands.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/extensions/git/src/commands.ts b/extensions/git/src/commands.ts index a4587ffd280..bdd13a197bf 100644 --- a/extensions/git/src/commands.ts +++ b/extensions/git/src/commands.ts @@ -1329,8 +1329,8 @@ export class CommandCenter { const enableSmartCommit = config.get('enableSmartCommit') === true; const enableCommitSigning = config.get('enableCommitSigning') === true; - const noStagedChanges = repository.indexGroup.resourceStates.length === 0; - const noUnstagedChanges = repository.workingTreeGroup.resourceStates.length === 0; + let noStagedChanges = repository.indexGroup.resourceStates.length === 0; + let noUnstagedChanges = repository.workingTreeGroup.resourceStates.length === 0; if (promptToSaveFilesBeforeCommit !== 'never') { let documents = workspace.textDocuments @@ -1352,6 +1352,9 @@ export class CommandCenter { if (pick === saveAndCommit) { await Promise.all(documents.map(d => d.save())); await repository.add(documents.map(d => d.uri)); + + noStagedChanges = repository.indexGroup.resourceStates.length === 0; + noUnstagedChanges = repository.workingTreeGroup.resourceStates.length === 0; } else if (pick !== commit) { return false; // do not commit on cancel } From 8dff4cfa55d4ca6e97fbe924017dee49c81a5c94 Mon Sep 17 00:00:00 2001 From: Harald Kirschner Date: Thu, 14 Jan 2021 22:49:22 -0800 Subject: [PATCH 085/171] Expanding Getting Started text based on first round of feedback. --- .../common/gettingStartedContent.ts | 56 +++++++++---------- 1 file changed, 28 insertions(+), 28 deletions(-) diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index 976d3e9d60c..ba47e0531da 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -60,10 +60,10 @@ export const content: GettingStartedContent = [ }, { id: 'forwardPortsTask', - title: localize('gettingStarted.forwardPorts.title', "Forward Ports to the Web"), - description: localize('gettingStarted.forwardPorts.description', "Test and debug your application in your browser by forwarding TCP ports running within your codespace."), + title: localize('gettingStarted.forwardPorts.title', "Access your running application"), + description: localize('gettingStarted.forwardPorts.description', "Ports running within your codespace are automatically forwarded to the web, so you can open them in your browser."), button: { - title: localize('gettingStarted.forwardPorts.button', "Open Ports"), + title: localize('gettingStarted.forwardPorts.button', "Show Ports panel"), command: '~remote.forwardedPorts.focus' }, doneOn: { commandExecuted: '~remote.forwardedPorts.focus' }, @@ -71,10 +71,10 @@ export const content: GettingStartedContent = [ }, { id: 'pullRequests', - title: localize('gettingStarted.pullRequests.title', "Pull Requests at Your Fingertips"), - description: localize('gettingStarted.pullRequests.description', "View Pull Requests. Check out branches. Add comments. Merge and delete branches from the Codespace."), + title: localize('gettingStarted.pullRequests.title', "Pull pequests at your fingertips"), + description: localize('gettingStarted.pullRequests.description', "Codespaces brings your GitHub workflow closer to your code, where you can view pull requests, add comments, merge branches, and more."), button: { - title: localize('gettingStarted.pullRequests.button', "Open GitHub Pull Request"), + title: localize('gettingStarted.pullRequests.button', "Open GitHub view"), command: 'workbench.view.extension.github-pull-requests' }, doneOn: { commandExecuted: 'workbench.view.extension.github-pull-requests' }, @@ -82,7 +82,7 @@ export const content: GettingStartedContent = [ }, { id: 'remoteTerminal', - title: localize('gettingStarted.remoteTerminal.title', "Run Tasks in the Integrated Terminal"), + title: localize('gettingStarted.remoteTerminal.title', "Run tasks in the integrated terminal"), description: localize('gettingStarted.remoteTerminal.description', "Access your full development environment in the cloud and perform quick command-line tasks."), button: { title: localize('gettingStarted.remoteTerminal.button', "Focus Terminal"), @@ -93,8 +93,8 @@ export const content: GettingStartedContent = [ }, { id: 'openVSC', - title: localize('gettingStarted.openVSC.title', "Open in Visual Studio Code"), - description: localize('gettingStarted.openVSC.description', "You can develop in your codespace directly in VS Code Code by connecting the GitHub Codespaces extension with your account on GitHub."), + title: localize('gettingStarted.openVSC.title', "Develop remotely in VS Code"), + description: localize('gettingStarted.openVSC.description', "Access the power of your cloud development environment from your local VS Code. Set up your local VS Code by installing the GitHub Codespaces extension and connecting your GitHub account."), button: { title: localize('gettingStarted.openVSC.button', "Open in VS Code"), command: 'github.codespaces.openInStable' @@ -110,23 +110,23 @@ export const content: GettingStartedContent = [ { id: 'Setup', title: localize('gettingStarted.setup.title', "Quick Setup"), - description: localize('gettingStarted.setup.description', "Extend and customize VS Code to fit your needs."), + description: localize('gettingStarted.setup.description', "Extend and customize VS Code to make it yours."), icon: setupIcon, content: { type: 'items', items: [ { id: 'pickColorTheme', - title: localize('gettingStarted.pickColor.title', "Customize the Look With Themes"), - description: localize('gettingStarted.pickColor.description', "Adapt VS Code to your taste with themes, customizing interface and language syntax colors."), - button: { title: localize('gettingStarted.pickColor.button', "Browse Color Themes"), command: 'workbench.action.selectTheme' }, + title: localize('gettingStarted.pickColor.title', "Customize the look with themes"), + description: localize('gettingStarted.pickColor.description', "Pick a theme to match your taste and mood. Browse even more from the vibrant themes community."), + button: { title: localize('gettingStarted.pickColor.button', "Pick your Theme"), command: 'workbench.action.selectTheme' }, doneOn: { eventFired: 'themeSelected' }, media: { type: 'image', altText: 'Color theme preview for dark and light theme.', path: 'colorTheme.jpg', } }, { id: 'findLanguageExtensions', - title: localize('gettingStarted.findLanguageExts.title', "Add More Language & Tools Support"), - description: localize('gettingStarted.findLanguageExts.description', "Install extensions with one click to support additional languages like Python, Java, Azure, Docker, and more."), + title: localize('gettingStarted.findLanguageExts.title', "Add more language & tools support"), + description: localize('gettingStarted.findLanguageExts.description', "VS Code supports almost every major programming language. While many are built-in, others can be installed as extensions with one click."), button: { title: localize('gettingStarted.findLanguageExts.button', "Browse Language Extensions"), command: 'workbench.extensions.action.showLanguageExtensions', @@ -136,11 +136,11 @@ export const content: GettingStartedContent = [ }, { id: 'settingsSync', - title: localize('gettingStarted.settingsSync.title', "Syncronize Settings"), - description: localize('gettingStarted.settingsSync.description', "Sign in to syncronize things like settings, extensions, and more, across your devices."), + title: localize('gettingStarted.settingsSync.title', "Sync your favorite setup"), + description: localize('gettingStarted.settingsSync.description', "Never lose the perfect VS Code setup! Settings Sync will back up and share settings, keybindings and installed extensions across several VS Code installations."), when: 'syncStatus != uninitialized', button: { - title: localize('gettingStarted.settingsSync.button', "Sign in to Sync"), + title: localize('gettingStarted.settingsSync.button', "Enable Settings Sync"), command: 'workbench.userDataSync.actions.turnOn', }, doneOn: { eventFired: 'sync-enabled' }, @@ -148,7 +148,7 @@ export const content: GettingStartedContent = [ }, { id: 'pickAFolderTask-Mac', - title: localize('gettingStarted.setup.OpenFolder.title', "Open Your Project"), + title: localize('gettingStarted.setup.OpenFolder.title', "Open your project"), description: localize('gettingStarted.setup.OpenFolder.description', "Open a project folder to get started!"), when: 'isMac', button: { @@ -160,7 +160,7 @@ export const content: GettingStartedContent = [ }, { id: 'pickAFolderTask-Other', - title: localize('gettingStarted.setup.OpenFolder.title', "Open Your Project"), + title: localize('gettingStarted.setup.OpenFolder.title', "Open your project"), description: localize('gettingStarted.setup.OpenFolder.description', "Open a project folder to get started!"), when: '!isMac', button: { @@ -178,13 +178,13 @@ export const content: GettingStartedContent = [ id: 'Beginner', title: localize('gettingStarted.beginner.title', "Learn the Fundamentals"), icon: beginnerIcon, - description: localize('gettingStarted.beginner.description', "Get up and running with must-have shortcuts & features."), + description: localize('gettingStarted.beginner.description', "Save time with these must-have shortcuts & features."), content: { type: 'items', items: [ { id: 'commandPaletteTask', - title: localize('gettingStarted.commandPalette.title', "Find and Run Commands"), + title: localize('gettingStarted.commandPalette.title', "Find and run commands"), description: localize('gettingStarted.commandPalette.description', "The easiest way to find everything VS Code can do. If you\'re ever looking for a feature or a shortcut, check here first!"), button: { title: localize('gettingStarted.commandPalette.button', "Open Command Palette"), @@ -195,10 +195,10 @@ export const content: GettingStartedContent = [ }, { id: 'terminal', - title: localize('gettingStarted.terminal.title', "Run Command-Line Tasks"), + title: localize('gettingStarted.terminal.title', "Run tasks in the integrated terminal"), description: localize('gettingStarted.terminal.description', "Quickly run shell commands and monitor build output, right next to your code."), button: { - title: localize('gettingStarted.terminal.button', "Open Terminal"), + title: localize('gettingStarted.terminal.button', "Open the Terminal"), command: 'workbench.action.terminal.toggleTerminal' }, doneOn: { commandExecuted: 'workbench.action.terminal.toggleTerminal' }, @@ -206,8 +206,8 @@ export const content: GettingStartedContent = [ }, { id: 'extensions', - title: localize('gettingStarted.extensions.title', "Supercharge VS Code With Extensions"), - description: localize('gettingStarted.extensions.description', "Extensions let you add languages, debuggers, and new features to support your development workflow."), + title: localize('gettingStarted.extensions.title', "Limitless extensibility"), + description: localize('gettingStarted.extensions.description', "Extensions are VS Code's power ups. They range from handy productivity hacks, expanding out-of-the-box features, to adding completely new capabilities."), button: { title: localize('gettingStarted.extensions.button', "Browse Recommended Extensions"), command: 'workbench.extensions.action.showRecommendedExtensions' @@ -217,8 +217,8 @@ export const content: GettingStartedContent = [ }, { id: 'settings', - title: localize('gettingStarted.settings.title', "Everything is a Setting"), - description: localize('gettingStarted.settings.description', "Optimize every part of VS Code's look & feel to your liking. Enable Settings Sync to use your personal tweaks across machines."), + title: localize('gettingStarted.settings.title', "Everything is a setting"), + description: localize('gettingStarted.settings.description', "Optimize every part of VS Code's look & feel to your liking. Enable Settings Sync lets you share your personal tweaks across machines."), button: { title: localize('gettingStarted.settings.button', "Tweak Some Settings"), command: 'workbench.action.openSettings' From 2bf5b56f115907ceb24512ff63c5da4738e6551a Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 08:08:19 +0100 Subject: [PATCH 086/171] shared process - move the shared process back to IPC folder We still have to figure out where to best put these files --- .../code/electron-browser/sharedProcess/sharedProcessMain.ts | 2 +- src/vs/code/electron-main/app.ts | 2 +- src/vs/code/electron-main/sharedProcess.ts | 4 ++-- .../electron-browser/sharedProcessService.ts | 0 .../electron-main/sharedProcessMainService.ts | 0 src/vs/platform/{sharedProcess => ipc}/node/sharedProcess.ts | 0 .../extensions/electron-browser/extensions.contribution.ts | 2 +- .../electron-browser/extensionRecommendationsService.test.ts | 2 +- .../test/electron-browser/extensionsActions.test.ts | 2 +- .../extensions/test/electron-browser/extensionsViews.test.ts | 2 +- .../test/electron-browser/extensionsWorkbenchService.test.ts | 2 +- .../electron-browser/userDataSync.contribution.ts | 2 +- src/vs/workbench/electron-browser/actions/developerActions.ts | 2 +- .../diagnostics/electron-browser/diagnosticsService.ts | 2 +- .../electron-browser/extensionManagementServerService.ts | 2 +- .../electron-browser/extensionTipsService.ts | 2 +- .../localizations/electron-browser/localizationsService.ts | 2 +- .../sharedProcess/electron-browser/sharedProcessService.ts | 2 +- .../services/telemetry/electron-browser/telemetryService.ts | 2 +- .../userDataSync/electron-browser/userDataAutoSyncService.ts | 2 +- .../electron-browser/userDataSyncAccountService.ts | 2 +- .../electron-browser/userDataSyncMachinesService.ts | 2 +- .../userDataSync/electron-browser/userDataSyncService.ts | 2 +- .../electron-browser/userDataSyncStoreManagementService.ts | 2 +- .../workbench/test/electron-browser/workbenchTestServices.ts | 2 +- 25 files changed, 23 insertions(+), 23 deletions(-) rename src/vs/platform/{sharedProcess => ipc}/electron-browser/sharedProcessService.ts (100%) rename src/vs/platform/{sharedProcess => ipc}/electron-main/sharedProcessMainService.ts (100%) rename src/vs/platform/{sharedProcess => ipc}/node/sharedProcess.ts (100%) diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 702c64434b5..a2f8b2961b2 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -72,7 +72,7 @@ import { UserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/comm import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService } from 'vs/platform/userDataSync/common/ignoredExtensions'; import { ExtensionsStorageSyncService, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; +import { ISharedProcessConfiguration } from 'vs/platform/ipc/node/sharedProcess'; import { LocalizationsUpdater } from 'vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater'; import { DeprecatedExtensionsCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner'; import { onUnexpectedError, setUnexpectedErrorHandler } from 'vs/base/common/errors'; diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 254c26ac98d..46d7b337624 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -68,7 +68,7 @@ import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsSer import { ExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/common/extensionHostDebugIpc'; import { ElectronExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/electron-main/extensionHostDebugIpc'; import { INativeHostMainService, NativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; -import { ISharedProcessMainService, SharedProcessMainService } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; +import { ISharedProcessMainService, SharedProcessMainService } from 'vs/platform/ipc/electron-main/sharedProcessMainService'; import { IDialogMainService, DialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; import { withNullAsUndefined } from 'vs/base/common/types'; import { mnemonicButtonLabel, getPathLabel } from 'vs/base/common/labels'; diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index fbf5263a3f0..074dd5b6d7f 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -5,14 +5,14 @@ import { BrowserWindow, ipcMain, Event, MessagePortMain } from 'electron'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; -import { ISharedProcess } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; +import { ISharedProcess } from 'vs/platform/ipc/electron-main/sharedProcessMainService'; import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService'; import { FileAccess } from 'vs/base/common/network'; import { browserCodeLoadingCacheStrategy } from 'vs/base/common/platform'; -import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; +import { ISharedProcessConfiguration } from 'vs/platform/ipc/node/sharedProcess'; import { Disposable } from 'vs/base/common/lifecycle'; import { connect as connectMessagePort } from 'vs/base/parts/ipc/electron-main/ipc.mp'; import { assertIsDefined } from 'vs/base/common/types'; diff --git a/src/vs/platform/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/platform/ipc/electron-browser/sharedProcessService.ts similarity index 100% rename from src/vs/platform/sharedProcess/electron-browser/sharedProcessService.ts rename to src/vs/platform/ipc/electron-browser/sharedProcessService.ts diff --git a/src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts b/src/vs/platform/ipc/electron-main/sharedProcessMainService.ts similarity index 100% rename from src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts rename to src/vs/platform/ipc/electron-main/sharedProcessMainService.ts diff --git a/src/vs/platform/sharedProcess/node/sharedProcess.ts b/src/vs/platform/ipc/node/sharedProcess.ts similarity index 100% rename from src/vs/platform/sharedProcess/node/sharedProcess.ts rename to src/vs/platform/ipc/node/sharedProcess.ts diff --git a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts index a92f4334ba0..edf6d1001f3 100644 --- a/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts +++ b/src/vs/workbench/contrib/extensions/electron-browser/extensions.contribution.ts @@ -24,7 +24,7 @@ import { ExtensionsAutoProfiler } from 'vs/workbench/contrib/extensions/electron import { OpenExtensionsFolderAction } from 'vs/workbench/contrib/extensions/electron-sandbox/extensionsActions'; import { ExtensionsLabel } from 'vs/platform/extensionManagement/common/extensionManagement'; import { IExtensionRecommendationNotificationService } from 'vs/platform/extensionRecommendations/common/extensionRecommendations'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { ExtensionRecommendationNotificationServiceChannel } from 'vs/platform/extensionRecommendations/electron-sandbox/extensionRecommendationsIpc'; import { Codicon } from 'vs/base/common/codicons'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts index 20f13716bd0..c380c4c74f5 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionRecommendationsService.test.ts @@ -40,7 +40,7 @@ import { IExperimentService } from 'vs/workbench/contrib/experiments/common/expe import { TestExperimentService } from 'vs/workbench/contrib/experiments/test/electron-browser/experimentService.test'; import { IStorageService, StorageScope, StorageTarget } from 'vs/platform/storage/common/storage'; import { ExtensionType } from 'vs/platform/extensions/common/extensions'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { FileService } from 'vs/platform/files/common/fileService'; import { NullLogService, ILogService } from 'vs/platform/log/common/log'; import { IFileService } from 'vs/platform/files/common/files'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts index 4a69d859efa..6297b551409 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts @@ -35,7 +35,7 @@ import { TestConfigurationService } from 'vs/platform/configuration/test/common/ import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; import { ExtensionIdentifier, IExtensionContributions, ExtensionType, IExtensionDescription, IExtension } from 'vs/platform/extensions/common/extensions'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { CancellationToken } from 'vs/base/common/cancellation'; import { ILabelService, IFormatterChangeEvent } from 'vs/platform/label/common/label'; import { IProductService } from 'vs/platform/product/common/productService'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts index 51e4ffddd00..e643b2dbed0 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts @@ -37,7 +37,7 @@ import { IExperimentService, ExperimentState, ExperimentActionType, ExperimentSe import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; import { ExtensionType, IExtension, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { MockContextKeyService } from 'vs/platform/keybinding/test/common/mockKeybindingService'; import { IMenuService } from 'vs/platform/actions/common/actions'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts index 5bad80409b2..e73daad5a26 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts @@ -37,7 +37,7 @@ import { CancellationToken } from 'vs/base/common/cancellation'; import { ExtensionType, IExtension, ExtensionKind } from 'vs/platform/extensions/common/extensions'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; import { IProductService } from 'vs/platform/product/common/productService'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; diff --git a/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts b/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts index df2b5d5f223..098549a7b60 100644 --- a/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts +++ b/src/vs/workbench/contrib/userDataSync/electron-browser/userDataSync.contribution.ts @@ -7,7 +7,7 @@ import { IWorkbenchContributionsRegistry, Extensions as WorkbenchExtensions, IWo import { IUserDataSyncUtilService, SyncStatus, UserDataSyncError, UserDataSyncErrorCode, IUserDataAutoSyncService } from 'vs/platform/userDataSync/common/userDataSync'; import { Registry } from 'vs/platform/registry/common/platform'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { UserDataSycnUtilServiceChannel } from 'vs/platform/userDataSync/common/userDataSyncIpc'; import { registerAction2, Action2, MenuId } from 'vs/platform/actions/common/actions'; import { localize } from 'vs/nls'; diff --git a/src/vs/workbench/electron-browser/actions/developerActions.ts b/src/vs/workbench/electron-browser/actions/developerActions.ts index 64aa83d1d24..c699748e2b2 100644 --- a/src/vs/workbench/electron-browser/actions/developerActions.ts +++ b/src/vs/workbench/electron-browser/actions/developerActions.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import * as nls from 'vs/nls'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { CATEGORIES } from 'vs/workbench/common/actions'; diff --git a/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts b/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts index 3315adc1771..0b5428fc855 100644 --- a/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts +++ b/src/vs/workbench/services/diagnostics/electron-browser/diagnosticsService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { createChannelSender } from 'vs/base/parts/ipc/common/ipc'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsService'; diff --git a/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts b/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts index 246fabe4158..8b217320088 100644 --- a/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts +++ b/src/vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService.ts @@ -9,7 +9,7 @@ import { IExtensionManagementServer, IExtensionManagementServerService } from 'v import { ExtensionManagementChannelClient } from 'vs/platform/extensionManagement/common/extensionManagementIpc'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { NativeRemoteExtensionManagementService } from 'vs/workbench/services/extensionManagement/electron-sandbox/remoteExtensionManagementService'; import { ILabelService } from 'vs/platform/label/common/label'; diff --git a/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts b/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts index 269aa16aac6..a494d0d7a0b 100644 --- a/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts +++ b/src/vs/workbench/services/extensionManagement/electron-browser/extensionTipsService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { IExtensionTipsService, IExecutableBasedExtensionTip, IWorkspaceTips, IConfigBasedExtensionTip } from 'vs/platform/extensionManagement/common/extensionManagement'; import { URI } from 'vs/base/common/uri'; diff --git a/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts b/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts index 40dec2973ea..d7aefde89c7 100644 --- a/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts +++ b/src/vs/workbench/services/localizations/electron-browser/localizationsService.ts @@ -5,7 +5,7 @@ import { createChannelSender } from 'vs/base/parts/ipc/common/ipc'; import { ILocalizationsService } from 'vs/platform/localizations/common/localizations'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; // @ts-ignore: interface is implemented via proxy diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts index 23a398a164f..56f8a297e37 100644 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts @@ -9,7 +9,7 @@ import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; import { Client as MessagePortClient } from 'vs/base/parts/ipc/common/ipc.mp'; import { IChannel, IServerChannel, getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { generateUuid } from 'vs/base/common/uuid'; diff --git a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts index 49141c533b1..acabe9e4dc5 100644 --- a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts +++ b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts @@ -9,7 +9,7 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { Disposable } from 'vs/base/common/lifecycle'; import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { IProductService } from 'vs/platform/product/common/productService'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/electron-browser/workbenchCommonProperties'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts index 680ed762484..7e381a0446b 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IUserDataAutoSyncService, UserDataSyncError } from 'vs/platform/userDataSync/common/userDataSync'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { Event } from 'vs/base/common/event'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts index 2b8d98553fc..4be8abf9893 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IChannel } from 'vs/base/parts/ipc/common/ipc'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { Disposable } from 'vs/base/common/lifecycle'; import { Event, Emitter } from 'vs/base/common/event'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts index 058bb47bd79..44dbc9e85e1 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { Disposable } from 'vs/base/common/lifecycle'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts index 46c9d696ffd..b4729eccf2e 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { SyncStatus, SyncResource, IUserDataSyncService, UserDataSyncError, ISyncResourceHandle, ISyncTask, IManualSyncTask, IUserDataManifest, ISyncResourcePreview, IResourcePreview } from 'vs/platform/userDataSync/common/userDataSync'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { Disposable } from 'vs/base/common/lifecycle'; import { Emitter, Event } from 'vs/base/common/event'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; diff --git a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts index cae006e56b9..7b2e238f684 100644 --- a/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts +++ b/src/vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService.ts @@ -4,7 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { IUserDataSyncStoreManagementService, UserDataSyncStoreType, IUserDataSyncStore } from 'vs/platform/userDataSync/common/userDataSync'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { IChannel } from 'vs/base/parts/ipc/common/ipc'; import { IStorageService } from 'vs/platform/storage/common/storage'; import { AbstractUserDataSyncStoreManagementService } from 'vs/platform/userDataSync/common/userDataSyncStoreService'; diff --git a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts index e2c42287545..54a44c2fc4a 100644 --- a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts @@ -5,7 +5,7 @@ import { workbenchInstantiationService as browserWorkbenchInstantiationService, ITestInstantiationService, TestLifecycleService, TestFilesConfigurationService, TestFileService, TestFileDialogService, TestPathService, TestEncodingOracle, TestProductService } from 'vs/workbench/test/browser/workbenchTestServices'; import { Event } from 'vs/base/common/event'; -import { ISharedProcessService } from 'vs/platform/sharedProcess/electron-browser/sharedProcessService'; +import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { NativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-browser/environmentService'; import { NativeTextFileService, } from 'vs/workbench/services/textfile/electron-browser/nativeTextFileService'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; From 99f0ab9f732149b8e5b347366152567307101262 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Fri, 15 Jan 2021 08:11:54 +0100 Subject: [PATCH 087/171] Publish scripts update (#114375) --- build/azure-pipelines/linux/alpine/publish.sh | 2 +- build/azure-pipelines/linux/publish.sh | 11 +++++++++++ 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/build/azure-pipelines/linux/alpine/publish.sh b/build/azure-pipelines/linux/alpine/publish.sh index 4bf874c63c3..2f5647d1ea3 100755 --- a/build/azure-pipelines/linux/alpine/publish.sh +++ b/build/azure-pipelines/linux/alpine/publish.sh @@ -22,7 +22,7 @@ SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web" SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz" SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME" -rm -rf $ROOT/vscode-server-*.tar.* +rm -rf $ROOT/vscode-server-*-web.tar.* (cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" diff --git a/build/azure-pipelines/linux/publish.sh b/build/azure-pipelines/linux/publish.sh index e0f1ade30d3..16f20599402 100755 --- a/build/azure-pipelines/linux/publish.sh +++ b/build/azure-pipelines/linux/publish.sh @@ -26,6 +26,17 @@ rm -rf $ROOT/vscode-server-*.tar.* node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" +# Publish Remote Extension Host (Web) +LEGACY_SERVER_BUILD_NAME="vscode-reh-web-$PLATFORM_LINUX" +SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web" +SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz" +SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME" + +rm -rf $ROOT/vscode-server-*-web.tar.* +(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) + +node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" + # Publish DEB case $VSCODE_ARCH in x64) DEB_ARCH="amd64" ;; From 98d2d74ba0781f7cb5832c25eefddf9a6509d0e6 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru Date: Fri, 15 Jan 2021 08:22:50 +0100 Subject: [PATCH 088/171] Revert "Publish scripts update (#114375)" This reverts commit 99f0ab9f732149b8e5b347366152567307101262. --- build/azure-pipelines/linux/alpine/publish.sh | 2 +- build/azure-pipelines/linux/publish.sh | 11 ----------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/build/azure-pipelines/linux/alpine/publish.sh b/build/azure-pipelines/linux/alpine/publish.sh index 2f5647d1ea3..4bf874c63c3 100755 --- a/build/azure-pipelines/linux/alpine/publish.sh +++ b/build/azure-pipelines/linux/alpine/publish.sh @@ -22,7 +22,7 @@ SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web" SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz" SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME" -rm -rf $ROOT/vscode-server-*-web.tar.* +rm -rf $ROOT/vscode-server-*.tar.* (cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" diff --git a/build/azure-pipelines/linux/publish.sh b/build/azure-pipelines/linux/publish.sh index 16f20599402..e0f1ade30d3 100755 --- a/build/azure-pipelines/linux/publish.sh +++ b/build/azure-pipelines/linux/publish.sh @@ -26,17 +26,6 @@ rm -rf $ROOT/vscode-server-*.tar.* node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" -# Publish Remote Extension Host (Web) -LEGACY_SERVER_BUILD_NAME="vscode-reh-web-$PLATFORM_LINUX" -SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web" -SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz" -SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME" - -rm -rf $ROOT/vscode-server-*-web.tar.* -(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) - -node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" - # Publish DEB case $VSCODE_ARCH in x64) DEB_ARCH="amd64" ;; From 9e1863ec2dce4a7e1fff93a697c4fe00e7dbb2f0 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 08:45:35 +0100 Subject: [PATCH 089/171] shared process - :lipstick: --- .../code/electron-browser/sharedProcess/sharedProcessMain.ts | 4 ++-- src/vs/code/electron-main/sharedProcess.ts | 2 ++ src/vs/code/electron-sandbox/workbench/workbench.js | 2 +- src/vs/platform/ipc/electron-sandbox/mainProcessService.ts | 4 ++-- 4 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index a2f8b2961b2..f0b2d6096a7 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -188,12 +188,12 @@ class SharedProcessMain extends Disposable { services.set(IDownloadService, new SyncDescriptor(DownloadService)); // Extension recommendations - const activeWindowManager = new ActiveWindowManager(nativeHostService); + const activeWindowManager = this._register(new ActiveWindowManager(nativeHostService)); const activeWindowRouter = new StaticRouter(ctx => activeWindowManager.getActiveClientId().then(id => ctx === id)); services.set(IExtensionRecommendationNotificationService, new ExtensionRecommendationNotificationServiceChannelClient(this.server.getChannel('extensionRecommendationNotification', activeWindowRouter))); // Logger - const loggerService = new LoggerService(logService, fileService); + const loggerService = this._register(new LoggerService(logService, fileService)); services.set(ILoggerService, loggerService); // Telemetry diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 074dd5b6d7f..12e1539123b 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -44,6 +44,8 @@ export class SharedProcess extends Disposable implements ISharedProcess { // Shared process connections ipcMain.on('vscode:createSharedProcessMessageChannel', async (e, nonce: string) => { + this.logService.trace('SharedProcess: on vscode:createSharedProcessMessageChannel'); + const port = await this.connect(); e.sender.postMessage('vscode:createSharedProcessMessageChannelResult', nonce, [port]); diff --git a/src/vs/code/electron-sandbox/workbench/workbench.js b/src/vs/code/electron-sandbox/workbench/workbench.js index 34ffb7b3dfb..10eb9ab9fae 100644 --- a/src/vs/code/electron-sandbox/workbench/workbench.js +++ b/src/vs/code/electron-sandbox/workbench/workbench.js @@ -23,7 +23,7 @@ 'vs/nls!vs/workbench/workbench.desktop.main', 'vs/css!vs/workbench/workbench.desktop.main' ], - function (workbench, configuration) { + function (_, configuration) { // Mark start of workbench performance.mark('code/didLoadWorkbenchMain'); diff --git a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts index ef17fe1cfe6..2f326523ce5 100644 --- a/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts +++ b/src/vs/platform/ipc/electron-sandbox/mainProcessService.ts @@ -7,7 +7,7 @@ import { IChannel, IServerChannel, StaticRouter } from 'vs/base/parts/ipc/common import { Client as IPCElectronClient } from 'vs/base/parts/ipc/electron-sandbox/ipc.electron'; import { Disposable } from 'vs/base/common/lifecycle'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { Server } from 'vs/base/parts/ipc/electron-sandbox/ipc.mp'; +import { Server as MessagePortServer } from 'vs/base/parts/ipc/electron-sandbox/ipc.mp'; export const IMainProcessService = createDecorator('mainProcessService'); @@ -54,7 +54,7 @@ export class MessagePortMainProcessService implements IMainProcessService { declare readonly _serviceBrand: undefined; constructor( - private server: Server, + private server: MessagePortServer, private router: StaticRouter ) { } From ec2a8e5b9ee0442b2ca1b5317a08ac3248a6cfca Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 08:58:50 +0100 Subject: [PATCH 090/171] shared process - rely on "close" event for disconnects --- src/vs/base/parts/ipc/common/ipc.mp.ts | 21 +++++-------------- .../base/parts/ipc/electron-sandbox/ipc.mp.ts | 8 ++++++- 2 files changed, 12 insertions(+), 17 deletions(-) diff --git a/src/vs/base/parts/ipc/common/ipc.mp.ts b/src/vs/base/parts/ipc/common/ipc.mp.ts index 8e59b5db9bf..01c36e6351d 100644 --- a/src/vs/base/parts/ipc/common/ipc.mp.ts +++ b/src/vs/base/parts/ipc/common/ipc.mp.ts @@ -17,13 +17,10 @@ import { VSBuffer } from 'vs/base/common/buffer'; export interface MessageEvent { /** - * For our use we only consider `Uint8Array` and `disconnect` - * a valid data transfer via message ports. Our protocol - * implementation is buffer based and we only need the explicit - * `disconnect` because message ports currently have no way of - * indicating when their connection is closed. + * For our use we only consider `Uint8Array` a valid data transfer + * via message ports because our protocol implementation is buffer based. */ - data: Uint8Array | 'disconnect'; + data: Uint8Array; } export interface MessagePort { @@ -31,7 +28,7 @@ export interface MessagePort { addEventListener(type: 'message', listener: (this: MessagePort, e: MessageEvent) => unknown): void; removeEventListener(type: 'message', listener: (this: MessagePort, e: MessageEvent) => unknown): void; - postMessage(message: Uint8Array | 'disconnect'): void; + postMessage(message: Uint8Array): void; start(): void; close(): void; @@ -44,19 +41,12 @@ export interface MessagePort { */ export class Protocol implements IMessagePassingProtocol { - private readonly onRawData = Event.fromDOMEventEmitter(this.port, 'message', (e: MessageEvent) => e.data === 'disconnect' ? e.data : VSBuffer.wrap(e.data)); - - readonly onMessage = Event.filter(this.onRawData, data => data !== 'disconnect') as Event; - readonly onDisconnect = Event.signal(Event.filter(this.onRawData, data => data === 'disconnect')); + readonly onMessage = Event.fromDOMEventEmitter(this.port, 'message', (e: MessageEvent) => VSBuffer.wrap(e.data)); constructor(private port: MessagePort) { // we must call start() to ensure messages are flowing port.start(); - - // when the other end disconnects, ensure that we close - // our end as well to stay in sync - Event.once(this.onDisconnect)(() => port.close()); } send(message: VSBuffer): void { @@ -64,7 +54,6 @@ export class Protocol implements IMessagePassingProtocol { } disconnect(): void { - this.port.postMessage('disconnect'); this.port.close(); } } diff --git a/src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts b/src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts index 7df6de38d4c..98e865fe9bf 100644 --- a/src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts +++ b/src/vs/base/parts/ipc/electron-sandbox/ipc.mp.ts @@ -30,7 +30,13 @@ export class Server extends IPCServer { const { port1: incomingPort, port2: outgoingPort } = new MessageChannel(); const protocol = new MessagePortProtocol(incomingPort); - const result: ClientConnectionEvent = { protocol, onDidClientDisconnect: protocol.onDisconnect }; + const result: ClientConnectionEvent = { + protocol, + // Not part of the standard spec, but in Electron we get a `close` event + // when the other side closes. We can use this to detect disconnects + // (https://github.com/electron/electron/blob/11-x-y/docs/api/message-port-main.md#event-close) + onDidClientDisconnect: Event.fromDOMEventEmitter(incomingPort, 'close') + }; // Send one port back to the requestor ipcRenderer.postMessage('vscode:createMessageChannelResult', nonce, [outgoingPort]); From c082930a4397748fa3d44f3ee92a6683c428479e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 09:23:38 +0100 Subject: [PATCH 091/171] shared process - introduce platform/sharedProcess --- .../code/electron-browser/sharedProcess/sharedProcessMain.ts | 2 +- src/vs/code/electron-main/app.ts | 2 +- src/vs/code/electron-main/sharedProcess.ts | 4 ++-- .../electron-main/sharedProcessMainService.ts | 0 src/vs/platform/{ipc => sharedProcess}/node/sharedProcess.ts | 0 5 files changed, 4 insertions(+), 4 deletions(-) rename src/vs/platform/{ipc => sharedProcess}/electron-main/sharedProcessMainService.ts (100%) rename src/vs/platform/{ipc => sharedProcess}/node/sharedProcess.ts (100%) diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index f0b2d6096a7..1781a467882 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -72,7 +72,7 @@ import { UserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/comm import { IgnoredExtensionsManagementService, IIgnoredExtensionsManagementService } from 'vs/platform/userDataSync/common/ignoredExtensions'; import { ExtensionsStorageSyncService, IExtensionsStorageSyncService } from 'vs/platform/userDataSync/common/extensionsStorageSync'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -import { ISharedProcessConfiguration } from 'vs/platform/ipc/node/sharedProcess'; +import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; import { LocalizationsUpdater } from 'vs/code/electron-browser/sharedProcess/contrib/localizationsUpdater'; import { DeprecatedExtensionsCleaner } from 'vs/code/electron-browser/sharedProcess/contrib/deprecatedExtensionsCleaner'; import { onUnexpectedError, setUnexpectedErrorHandler } from 'vs/base/common/errors'; diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 46d7b337624..254c26ac98d 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -68,7 +68,7 @@ import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsSer import { ExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/common/extensionHostDebugIpc'; import { ElectronExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/electron-main/extensionHostDebugIpc'; import { INativeHostMainService, NativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; -import { ISharedProcessMainService, SharedProcessMainService } from 'vs/platform/ipc/electron-main/sharedProcessMainService'; +import { ISharedProcessMainService, SharedProcessMainService } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; import { IDialogMainService, DialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; import { withNullAsUndefined } from 'vs/base/common/types'; import { mnemonicButtonLabel, getPathLabel } from 'vs/base/common/labels'; diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 12e1539123b..6ddb9ecd82b 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -5,14 +5,14 @@ import { BrowserWindow, ipcMain, Event, MessagePortMain } from 'electron'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; -import { ISharedProcess } from 'vs/platform/ipc/electron-main/sharedProcessMainService'; +import { ISharedProcess } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService'; import { FileAccess } from 'vs/base/common/network'; import { browserCodeLoadingCacheStrategy } from 'vs/base/common/platform'; -import { ISharedProcessConfiguration } from 'vs/platform/ipc/node/sharedProcess'; +import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; import { Disposable } from 'vs/base/common/lifecycle'; import { connect as connectMessagePort } from 'vs/base/parts/ipc/electron-main/ipc.mp'; import { assertIsDefined } from 'vs/base/common/types'; diff --git a/src/vs/platform/ipc/electron-main/sharedProcessMainService.ts b/src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts similarity index 100% rename from src/vs/platform/ipc/electron-main/sharedProcessMainService.ts rename to src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts diff --git a/src/vs/platform/ipc/node/sharedProcess.ts b/src/vs/platform/sharedProcess/node/sharedProcess.ts similarity index 100% rename from src/vs/platform/ipc/node/sharedProcess.ts rename to src/vs/platform/sharedProcess/node/sharedProcess.ts From 45e8d6ebc65e8a3d45a45b9aae37a7feb17f275f Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru Date: Fri, 15 Jan 2021 09:31:09 +0100 Subject: [PATCH 092/171] Update distro commit --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5fe7d508b8d..d3f29ef6495 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "cb2b2df95eb87c873b72420d14a4c67ad0c860c5", + "distro": "a4aee81c8fd09e4b1e16f08b2ae36e5fb8cf3d3a", "author": { "name": "Microsoft Corporation" }, From 5d620dc8466f02dc1f8d9ace852c6512e182f2cd Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru Date: Fri, 15 Jan 2021 09:31:49 +0100 Subject: [PATCH 093/171] Update Linux publish script --- build/azure-pipelines/linux/publish.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/build/azure-pipelines/linux/publish.sh b/build/azure-pipelines/linux/publish.sh index e0f1ade30d3..5b86e843082 100755 --- a/build/azure-pipelines/linux/publish.sh +++ b/build/azure-pipelines/linux/publish.sh @@ -26,6 +26,17 @@ rm -rf $ROOT/vscode-server-*.tar.* node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" +# Publish Remote Extension Host (Web) +LEGACY_SERVER_BUILD_NAME="vscode-reh-web-$PLATFORM_LINUX" +SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web" +SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz" +SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME" + +rm -rf $ROOT/vscode-server-*.tar.* +(cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) + +node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" + # Publish DEB case $VSCODE_ARCH in x64) DEB_ARCH="amd64" ;; From ba7f5c60a5ee509844794a3c384427608660b7f3 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru Date: Fri, 15 Jan 2021 09:38:11 +0100 Subject: [PATCH 094/171] update distro --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index d3f29ef6495..2e5bdd68404 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "a4aee81c8fd09e4b1e16f08b2ae36e5fb8cf3d3a", + "distro": "7bed15980ca437ad64cbdcd75363d9fff333df63", "author": { "name": "Microsoft Corporation" }, @@ -216,4 +216,4 @@ "windows-mutex": "0.3.0", "windows-process-tree": "0.2.4" } -} +} \ No newline at end of file From 22c1c0b486df075d95c98893fe58efbe57f09197 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru Date: Fri, 15 Jan 2021 09:41:48 +0100 Subject: [PATCH 095/171] update distro again --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 2e5bdd68404..2fe3b1305bc 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "7bed15980ca437ad64cbdcd75363d9fff333df63", + "distro": "85b8eb4a7b856b4bca8c5882d289776c13eab544", "author": { "name": "Microsoft Corporation" }, From 55e10fd785a4cdc3d89b0a92942059cf86705d68 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 09:45:10 +0100 Subject: [PATCH 096/171] shared process - introduce a separate service for management --- src/vs/code/electron-main/app.ts | 10 ++++---- src/vs/code/electron-main/sharedProcess.ts | 3 +-- .../common/sharedProcessManagement.ts | 17 ++++++++++++++ ... => sharedProcessManagementMainService.ts} | 20 ++++------------ .../sharedProcess/node/sharedProcess.ts | 14 +++++++++++ .../sharedProcessManagementService.ts | 23 +++++++++++++++++++ .../electron-browser/sharedProcessService.ts | 9 ++++---- src/vs/workbench/workbench.desktop.main.ts | 1 + 8 files changed, 70 insertions(+), 27 deletions(-) create mode 100644 src/vs/platform/sharedProcess/common/sharedProcessManagement.ts rename src/vs/platform/sharedProcess/electron-main/{sharedProcessMainService.ts => sharedProcessManagementMainService.ts} (57%) create mode 100644 src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 254c26ac98d..4f677dc0981 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -68,7 +68,7 @@ import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsSer import { ExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/common/extensionHostDebugIpc'; import { ElectronExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/electron-main/extensionHostDebugIpc'; import { INativeHostMainService, NativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; -import { ISharedProcessMainService, SharedProcessMainService } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; +import { ISharedProcessManagementMainService, SharedProcessManagementMainService } from 'vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService'; import { IDialogMainService, DialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; import { withNullAsUndefined } from 'vs/base/common/types'; import { mnemonicButtonLabel, getPathLabel } from 'vs/base/common/labels'; @@ -509,7 +509,7 @@ export class CodeApplication extends Disposable { services.set(IWindowsMainService, new SyncDescriptor(WindowsMainService, [machineId, this.userEnv])); services.set(IDialogMainService, new SyncDescriptor(DialogMainService)); - services.set(ISharedProcessMainService, new SyncDescriptor(SharedProcessMainService, [sharedProcess])); + services.set(ISharedProcessManagementMainService, new SyncDescriptor(SharedProcessManagementMainService, [sharedProcess])); services.set(ILaunchMainService, new SyncDescriptor(LaunchMainService)); services.set(IDiagnosticsService, createChannelSender(getDelayedChannel(sharedProcessReady.then(client => client.getChannel('diagnostics'))))); @@ -621,9 +621,9 @@ export class CodeApplication extends Disposable { electronIpcServer.registerChannel('nativeHost', nativeHostChannel); sharedProcessClient.then(client => client.registerChannel('nativeHost', nativeHostChannel)); - const sharedProcessMainService = accessor.get(ISharedProcessMainService); - const sharedProcessChannel = createChannelReceiver(sharedProcessMainService); - electronIpcServer.registerChannel('sharedProcess', sharedProcessChannel); + const sharedProcessMainManagementService = accessor.get(ISharedProcessManagementMainService); + const sharedProcessManagementChannel = createChannelReceiver(sharedProcessMainManagementService); + electronIpcServer.registerChannel('sharedProcessManagement', sharedProcessManagementChannel); const workspacesService = accessor.get(IWorkspacesService); const workspacesChannel = createChannelReceiver(workspacesService); diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 6ddb9ecd82b..860659ba871 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -5,14 +5,13 @@ import { BrowserWindow, ipcMain, Event, MessagePortMain } from 'electron'; import { IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; -import { ISharedProcess } from 'vs/platform/sharedProcess/electron-main/sharedProcessMainService'; import { Barrier } from 'vs/base/common/async'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleMainService } from 'vs/platform/lifecycle/electron-main/lifecycleMainService'; import { IThemeMainService } from 'vs/platform/theme/electron-main/themeMainService'; import { FileAccess } from 'vs/base/common/network'; import { browserCodeLoadingCacheStrategy } from 'vs/base/common/platform'; -import { ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; +import { ISharedProcess, ISharedProcessConfiguration } from 'vs/platform/sharedProcess/node/sharedProcess'; import { Disposable } from 'vs/base/common/lifecycle'; import { connect as connectMessagePort } from 'vs/base/parts/ipc/electron-main/ipc.mp'; import { assertIsDefined } from 'vs/base/common/types'; diff --git a/src/vs/platform/sharedProcess/common/sharedProcessManagement.ts b/src/vs/platform/sharedProcess/common/sharedProcessManagement.ts new file mode 100644 index 00000000000..4a24d9ca0cb --- /dev/null +++ b/src/vs/platform/sharedProcess/common/sharedProcessManagement.ts @@ -0,0 +1,17 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; + +export const ISharedProcessManagementService = createDecorator('sharedProcessManagement'); + +export interface ISharedProcessManagementService { + + readonly _serviceBrand: undefined; + + whenReady(): Promise; + + toggleWindow(): Promise; +} diff --git a/src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts b/src/vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService.ts similarity index 57% rename from src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts rename to src/vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService.ts index 1c01cfaa2d7..19cd18fd66d 100644 --- a/src/vs/platform/sharedProcess/electron-main/sharedProcessMainService.ts +++ b/src/vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService.ts @@ -4,24 +4,14 @@ *--------------------------------------------------------------------------------------------*/ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; +import { ISharedProcess } from 'vs/platform/sharedProcess/node/sharedProcess'; +import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; -export const ISharedProcessMainService = createDecorator('sharedProcessMainService'); +export const ISharedProcessManagementMainService = createDecorator('sharedProcessManagementMainService'); -export interface ISharedProcessMainService { +export interface ISharedProcessManagementMainService extends ISharedProcessManagementService { } - readonly _serviceBrand: undefined; - - whenReady(): Promise; - - toggleWindow(): Promise; -} - -export interface ISharedProcess { - whenReady(): Promise; - toggle(): void; -} - -export class SharedProcessMainService implements ISharedProcessMainService { +export class SharedProcessManagementMainService implements ISharedProcessManagementMainService { declare readonly _serviceBrand: undefined; diff --git a/src/vs/platform/sharedProcess/node/sharedProcess.ts b/src/vs/platform/sharedProcess/node/sharedProcess.ts index 167e1bcbcba..94f992c15b5 100644 --- a/src/vs/platform/sharedProcess/node/sharedProcess.ts +++ b/src/vs/platform/sharedProcess/node/sharedProcess.ts @@ -6,6 +6,20 @@ import { NativeParsedArgs } from 'vs/platform/environment/common/argv'; import { LogLevel } from 'vs/platform/log/common/log'; +export interface ISharedProcess { + + /** + * Signals the shared process has finished initialization. + */ + whenReady(): Promise; + + /** + * Toggles the visibility of the otherwise hidden + * shared process window. + */ + toggle(): void; +} + export interface ISharedProcessConfiguration { readonly machineId: string; readonly windowId: number; diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts new file mode 100644 index 00000000000..b4619d53ac3 --- /dev/null +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts @@ -0,0 +1,23 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { createChannelSender } from 'vs/base/parts/ipc/common/ipc'; +import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; +import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; +import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; + +// @ts-ignore: interface is implemented via proxy +export class SharedProcessManagementService implements ISharedProcessManagementService { + + declare readonly _serviceBrand: undefined; + + constructor( + @IMainProcessService mainProcessService: IMainProcessService + ) { + return createChannelSender(mainProcessService.getChannel('sharedProcessManagement')); + } +} + +registerSingleton(ISharedProcessManagementService, SharedProcessManagementService, true); diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts index 56f8a297e37..fcbf7b0c73f 100644 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts @@ -8,7 +8,6 @@ import { IpcRendererEvent } from 'vs/base/parts/sandbox/electron-sandbox/electro import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; import { Client as MessagePortClient } from 'vs/base/parts/ipc/common/ipc.mp'; import { IChannel, IServerChannel, getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; -import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; @@ -16,16 +15,16 @@ import { generateUuid } from 'vs/base/common/uuid'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { Disposable } from 'vs/base/common/lifecycle'; +import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; export class SharedProcessService extends Disposable implements ISharedProcessService { declare readonly _serviceBrand: undefined; - private readonly sharedProcessMainChannel = this.mainProcessService.getChannel('sharedProcess'); private readonly withSharedProcessConnection: Promise; constructor( - @IMainProcessService private readonly mainProcessService: IMainProcessService, + @ISharedProcessManagementService private readonly sharedProcessManagementService: ISharedProcessManagementService, @INativeHostService private readonly nativeHostService: INativeHostService, @ILogService private readonly logService: ILogService, @ILifecycleService private readonly lifecycleService: ILifecycleService @@ -47,7 +46,7 @@ export class SharedProcessService extends Disposable implements ISharedProcessSe this.logService.trace('Workbench->SharedProcess#connect'); // await the shared process to be ready - await this.sharedProcessMainChannel.call('whenReady'); + await this.sharedProcessManagementService.whenReady(); // Ask to create message channel inside the window // and send over a UUID to correlate the response @@ -74,7 +73,7 @@ export class SharedProcessService extends Disposable implements ISharedProcessSe } toggleWindow(): Promise { - return this.sharedProcessMainChannel.call('toggleWindow'); + return this.sharedProcessManagementService.toggleWindow(); } } diff --git a/src/vs/workbench/workbench.desktop.main.ts b/src/vs/workbench/workbench.desktop.main.ts index 9f3343679e8..bc2e2d6bfd0 100644 --- a/src/vs/workbench/workbench.desktop.main.ts +++ b/src/vs/workbench/workbench.desktop.main.ts @@ -78,6 +78,7 @@ import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncService' import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService'; import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService'; import 'vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService'; +import 'vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService'; import 'vs/workbench/services/sharedProcess/electron-browser/sharedProcessService'; import 'vs/workbench/services/localizations/electron-browser/localizationsService'; import 'vs/workbench/services/diagnostics/electron-browser/diagnosticsService'; From addb6b9b53a5095ebde7036da50fab766aa011b6 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 15 Jan 2021 10:29:41 +0100 Subject: [PATCH 097/171] :lipstick: --- .../browser/parts/activitybar/activitybarPart.ts | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts index af45b2bd3de..3e1fa6cbcc4 100644 --- a/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts +++ b/src/vs/workbench/browser/parts/activitybar/activitybarPart.ts @@ -135,14 +135,8 @@ export class ActivitybarPart extends Part implements IActivityBarService { super(Parts.ACTIVITYBAR_PART, { hasTitle: false }, themeService, storageService, layoutService); for (const cachedViewContainer of this.cachedViewContainers) { - if ( - environmentService.remoteAuthority || // In remote window, hide activity bar entries until registered. - this.shouldBeHidden(cachedViewContainer.id, cachedViewContainer) - ) { - cachedViewContainer.visible = false; - } + cachedViewContainer.visible = !this.shouldBeHidden(cachedViewContainer.id, cachedViewContainer); } - this.compositeBar = this.createCompositeBar(); this.onDidRegisterViewContainers(this.getViewContainers()); @@ -791,8 +785,8 @@ export class ActivitybarPart extends Part implements IActivityBarService { } } - // Check Cache - if (!this.hasExtensionsRegistered) { + // Check cache only in desktop local window and if extensions are not yet registered + if (!this.environmentService.remoteAuthority && !this.hasExtensionsRegistered) { cachedViewContainer = cachedViewContainer || this.cachedViewContainers.find(({ id }) => id === viewContainerId); // Show builtin ViewContainer if not registered yet From 98acb74149d28a8da9aa6f9fdb0cb47072485fd5 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 10:46:32 +0100 Subject: [PATCH 098/171] shared process - fix --status invocation --- src/vs/code/electron-main/main.ts | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index e217f3b7d15..6aafb4a847e 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -39,7 +39,7 @@ import { IThemeMainService, ThemeMainService } from 'vs/platform/theme/electron- import { once } from 'vs/base/common/functional'; import { ISignService } from 'vs/platform/sign/common/sign'; import { SignService } from 'vs/platform/sign/node/signService'; -import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsService'; +import { DiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsService'; import { FileService } from 'vs/platform/files/common/fileService'; import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemProvider'; import { Schemas } from 'vs/base/common/network'; @@ -54,6 +54,7 @@ import { basename, resolve } from 'vs/base/common/path'; import { coalesce, distinct } from 'vs/base/common/arrays'; import { EnvironmentMainService, IEnvironmentMainService } from 'vs/platform/environment/electron-main/environmentMainService'; import { toErrorMessage } from 'vs/base/common/errorMessage'; +import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils'; class ExpectedError extends Error { readonly isExpected = true; @@ -294,11 +295,7 @@ class CodeMain { // Process Info if (args.status) { return instantiationService.invokeFunction(async () => { - - // Create a diagnostic service connected to the existing shared process - const sharedProcessClient = await nodeIPCConnect(environmentService.sharedIPCHandle, 'main'); - const diagnosticsChannel = sharedProcessClient.getChannel('diagnostics'); - const diagnosticsService = createChannelSender(diagnosticsChannel); + const diagnosticsService = new DiagnosticsService(NullTelemetryService); const mainProcessInfo = await launchService.getMainProcessInfo(); const remoteDiagnostics = await launchService.getRemoteDiagnostics({ includeProcesses: true, includeWorkspaceMetadata: true }); const diagnostics = await diagnosticsService.getDiagnostics(mainProcessInfo, remoteDiagnostics); From 6889ed3ab17d58c1f80263c1b25f190d1ef76926 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Fri, 15 Jan 2021 12:02:49 +0100 Subject: [PATCH 099/171] Notification for elevating when using privileged port from openTunnel --- .../api/browser/mainThreadTunnelService.ts | 32 +++++++++++++++++-- 1 file changed, 29 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/api/browser/mainThreadTunnelService.ts b/src/vs/workbench/api/browser/mainThreadTunnelService.ts index d9e49ccde8f..044d5e03e98 100644 --- a/src/vs/workbench/api/browser/mainThreadTunnelService.ts +++ b/src/vs/workbench/api/browser/mainThreadTunnelService.ts @@ -3,22 +3,26 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import * as nls from 'vs/nls'; import { MainThreadTunnelServiceShape, IExtHostContext, MainContext, ExtHostContext, ExtHostTunnelServiceShape } from 'vs/workbench/api/common/extHost.protocol'; import { TunnelDto } from 'vs/workbench/api/common/extHostTunnelService'; import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; import { CandidatePort, IRemoteExplorerService, makeAddress } from 'vs/workbench/services/remote/common/remoteExplorerService'; -import { ITunnelProvider, ITunnelService, TunnelCreationOptions, TunnelProviderFeatures, TunnelOptions } from 'vs/platform/remote/common/tunnel'; +import { ITunnelProvider, ITunnelService, TunnelCreationOptions, TunnelProviderFeatures, TunnelOptions, RemoteTunnel, isPortPrivileged } from 'vs/platform/remote/common/tunnel'; import { Disposable } from 'vs/base/common/lifecycle'; import type { TunnelDescription } from 'vs/platform/remote/common/remoteAuthorityResolver'; +import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; @extHostNamedCustomer(MainContext.MainThreadTunnelService) export class MainThreadTunnelService extends Disposable implements MainThreadTunnelServiceShape { private readonly _proxy: ExtHostTunnelServiceShape; + private elevateionRetry: boolean = false; constructor( extHostContext: IExtHostContext, @IRemoteExplorerService private readonly remoteExplorerService: IRemoteExplorerService, - @ITunnelService private readonly tunnelService: ITunnelService + @ITunnelService private readonly tunnelService: ITunnelService, + @INotificationService private readonly notificationService: INotificationService ) { super(); this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostTunnelService); @@ -35,13 +39,35 @@ export class MainThreadTunnelService extends Disposable implements MainThreadTun } async $openTunnel(tunnelOptions: TunnelOptions, source: string): Promise { - const tunnel = await this.remoteExplorerService.forward(tunnelOptions.remoteAddress, tunnelOptions.localAddressPort, tunnelOptions.label, source, true); + const tunnel = await this.remoteExplorerService.forward(tunnelOptions.remoteAddress, tunnelOptions.localAddressPort, tunnelOptions.label, source, false); if (tunnel) { + if (!this.elevateionRetry + && (tunnelOptions.localAddressPort !== undefined) + && (tunnel.tunnelLocalPort !== undefined) + && isPortPrivileged(tunnelOptions.localAddressPort) + && (tunnel.tunnelLocalPort !== tunnelOptions.localAddressPort)) { + + this.elevationPrompt(tunnelOptions, tunnel, source); + } return TunnelDto.fromServiceTunnel(tunnel); } return undefined; } + private async elevationPrompt(tunnelOptions: TunnelOptions, tunnel: RemoteTunnel, source: string) { + return this.notificationService.prompt(Severity.Info, + nls.localize('remote.tunnel.openTunnel', "The extension {0} has forwarded port {1}. You'll need to run as superuser to use port {2} locally.", source, tunnelOptions.remoteAddress.port, tunnelOptions.localAddressPort), + [{ + label: nls.localize('remote.tunnelsView.elevationButton', "Use Port {0} as Sudo...", tunnel.tunnelRemotePort), + run: async () => { + this.elevateionRetry = true; + await this.remoteExplorerService.close({ host: tunnel.tunnelRemoteHost, port: tunnel.tunnelRemotePort }); + await this.remoteExplorerService.forward(tunnelOptions.remoteAddress, tunnelOptions.localAddressPort, tunnelOptions.label, source, true); + this.elevateionRetry = false; + } + }]); + } + async $closeTunnel(remote: { host: string, port: number }): Promise { return this.remoteExplorerService.close(remote); } From be2732570ac5ac30c98fd3b5b39d24154336382f Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Fri, 15 Jan 2021 12:26:06 +0100 Subject: [PATCH 100/171] Include tunnel service canElevate check --- src/vs/workbench/api/browser/mainThreadTunnelService.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/api/browser/mainThreadTunnelService.ts b/src/vs/workbench/api/browser/mainThreadTunnelService.ts index 044d5e03e98..1d198877f0e 100644 --- a/src/vs/workbench/api/browser/mainThreadTunnelService.ts +++ b/src/vs/workbench/api/browser/mainThreadTunnelService.ts @@ -45,7 +45,8 @@ export class MainThreadTunnelService extends Disposable implements MainThreadTun && (tunnelOptions.localAddressPort !== undefined) && (tunnel.tunnelLocalPort !== undefined) && isPortPrivileged(tunnelOptions.localAddressPort) - && (tunnel.tunnelLocalPort !== tunnelOptions.localAddressPort)) { + && (tunnel.tunnelLocalPort !== tunnelOptions.localAddressPort) + && this.tunnelService.canElevate) { this.elevationPrompt(tunnelOptions, tunnel, source); } From bc7d3c9ea6d6a754221f809b03b8166073ae0105 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 12:35:17 +0100 Subject: [PATCH 101/171] remove grammar extensions --- extensions/bat/.vscodeignore | 2 - extensions/bat/cgmanifest.json | 17 - extensions/bat/language-configuration.json | 29 - extensions/bat/package.json | 29 - extensions/bat/package.nls.json | 4 - .../bat/snippets/batchfile.code-snippets | 16 - .../bat/syntaxes/batchfile.tmLanguage.json | 738 - .../bat/test/colorize-fixtures/test.bat | 24 - .../bat/test/colorize-results/test_bat.json | 541 - extensions/clojure/.vscodeignore | 2 - extensions/clojure/cgmanifest.json | 18 - .../clojure/language-configuration.json | 25 - extensions/clojure/package.json | 25 - extensions/clojure/package.nls.json | 4 - .../clojure/syntaxes/clojure.tmLanguage.json | 435 - .../clojure/test/colorize-fixtures/test.clj | 52 - .../test/colorize-results/test_clj.json | 3324 --- extensions/coffeescript/.vscodeignore | 2 - extensions/coffeescript/cgmanifest.json | 18 - .../coffeescript/language-configuration.json | 33 - extensions/coffeescript/package.json | 34 - extensions/coffeescript/package.nls.json | 4 - .../snippets/coffeescript.code-snippets | 16 - .../syntaxes/coffeescript.tmLanguage.json | 1316 - .../test/colorize-fixtures/test-regex.coffee | 15 - .../test/colorize-fixtures/test.coffee | 28 - .../colorize-results/test-regex_coffee.json | 728 - .../test/colorize-results/test_coffee.json | 1608 -- extensions/cpp/.vscodeignore | 3 - extensions/cpp/build/update-grammars.js | 15 - extensions/cpp/cgmanifest.json | 45 - extensions/cpp/language-configuration.json | 32 - extensions/cpp/package.json | 87 - extensions/cpp/package.nls.json | 4 - extensions/cpp/snippets/c.code-snippets | 16 - extensions/cpp/snippets/cpp.code-snippets | 16 - extensions/cpp/syntaxes/c.tmLanguage.json | 3339 --- .../cpp.embedded.macro.tmLanguage.json | 11067 -------- extensions/cpp/syntaxes/cpp.tmLanguage.json | 19818 --------------- .../cpp/syntaxes/platform.tmLanguage.json | 1126 - .../cpp/test/colorize-fixtures/test-23630.cpp | 3 - .../cpp/test/colorize-fixtures/test-23850.cpp | 3 - .../cpp/test/colorize-fixtures/test-78769.cpp | 13 - .../cpp/test/colorize-fixtures/test-80644.cpp | 10 - .../cpp/test/colorize-fixtures/test-92369.cpp | 3 - extensions/cpp/test/colorize-fixtures/test.c | 30 - extensions/cpp/test/colorize-fixtures/test.cc | 27 - .../cpp/test/colorize-fixtures/test.cpp | 33 - .../test/colorize-results/test-23630_cpp.json | 123 - .../test/colorize-results/test-23850_cpp.json | 112 - .../test/colorize-results/test-78769_cpp.json | 1190 - .../test/colorize-results/test-80644_cpp.json | 508 - .../test/colorize-results/test-92369_cpp.json | 24 - .../cpp/test/colorize-results/test_c.json | 2796 -- .../cpp/test/colorize-results/test_cc.json | 1982 -- .../cpp/test/colorize-results/test_cpp.json | 2433 -- extensions/csharp/.vscodeignore | 2 - extensions/csharp/cgmanifest.json | 18 - extensions/csharp/language-configuration.json | 32 - extensions/csharp/package.json | 43 - extensions/csharp/package.nls.json | 4 - .../csharp/snippets/csharp.code-snippets | 16 - .../csharp/syntaxes/csharp.tmLanguage.json | 4333 ---- .../csharp/test/colorize-fixtures/test.cs | 17 - .../csharp/test/colorize-results/test_cs.json | 1377 - extensions/css/.vscode/launch.json | 14 - extensions/css/.vscodeignore | 3 - extensions/css/cgmanifest.json | 18 - extensions/css/language-configuration.json | 30 - extensions/css/package.json | 42 - extensions/css/package.nls.json | 4 - extensions/css/syntaxes/css.tmLanguage.json | 1865 -- .../test/colorize-fixtures/test-variables.css | 7 - .../css/test/colorize-fixtures/test.css | 159 - .../colorize-results/test-variables_css.json | 541 - .../css/test/colorize-results/test_css.json | 9154 ------- extensions/docker/.vscodeignore | 2 - extensions/docker/cgmanifest.json | 18 - extensions/docker/language-configuration.json | 24 - extensions/docker/package.json | 34 - extensions/docker/package.nls.json | 4 - .../docker/syntaxes/docker.tmLanguage.json | 102 - .../docker/test/colorize-fixtures/Dockerfile | 14 - .../test/colorize-results/Dockerfile.json | 310 - extensions/fsharp/.vscodeignore | 2 - extensions/fsharp/cgmanifest.json | 18 - extensions/fsharp/language-configuration.json | 31 - extensions/fsharp/package.json | 29 - extensions/fsharp/package.nls.json | 4 - .../fsharp/snippets/fsharp.code-snippets | 16 - .../fsharp/syntaxes/fsharp.tmLanguage.json | 1802 -- .../fsharp/test/colorize-fixtures/test.fs | 18 - .../fsharp/test/colorize-results/test_fs.json | 1399 - extensions/go/.vscodeignore | 2 - extensions/go/cgmanifest.json | 18 - extensions/go/language-configuration.json | 37 - extensions/go/package.json | 40 - extensions/go/package.nls.json | 4 - extensions/go/syntaxes/go.tmLanguage.json | 1017 - .../go/test/colorize-fixtures/test-13777.go | 1 - extensions/go/test/colorize-fixtures/test.go | 25 - .../test/colorize-results/test-13777_go.json | 101 - .../go/test/colorize-results/test_go.json | 1432 -- extensions/groovy/.vscodeignore | 2 - extensions/groovy/cgmanifest.json | 32 - extensions/groovy/language-configuration.json | 25 - extensions/groovy/package.json | 32 - extensions/groovy/package.nls.json | 4 - .../groovy/snippets/groovy.code-snippets | 226 - .../groovy/syntaxes/groovy.tmLanguage.json | 1383 - .../groovy/test/colorize-fixtures/test.groovy | 219 - .../test/colorize-results/test_groovy.json | 10430 -------- extensions/handlebars/.vscodeignore | 2 - extensions/handlebars/cgmanifest.json | 36 - .../handlebars/language-configuration.json | 26 - extensions/handlebars/package.json | 28 - extensions/handlebars/package.nls.json | 4 - .../syntaxes/Handlebars.tmLanguage.json | 852 - .../test/colorize-fixtures/test.handlebars | 30 - .../test/colorize-fixtures/test.hbs | 24 - .../colorize-results/test_handlebars.json | 2114 -- .../test/colorize-results/test_hbs.json | 1960 -- extensions/hlsl/.vscodeignore | 2 - extensions/hlsl/cgmanifest.json | 17 - extensions/hlsl/language-configuration.json | 23 - extensions/hlsl/package.json | 25 - extensions/hlsl/package.nls.json | 4 - extensions/hlsl/syntaxes/hlsl.tmLanguage.json | 217 - .../hlsl/test/colorize-fixtures/test.hlsl | 13 - .../hlsl/test/colorize-results/test_hlsl.json | 277 - extensions/html/.vscodeignore | 2 - extensions/html/build/update-grammar.js | 44 - extensions/html/cgmanifest.json | 32 - extensions/html/language-configuration.json | 33 - extensions/html/package.json | 81 - extensions/html/package.nls.json | 4 - .../syntaxes/html-derivative.tmLanguage.json | 49 - extensions/html/syntaxes/html.tmLanguage.json | 2643 -- .../html/test/colorize-fixtures/12750.html | 6 - .../html/test/colorize-fixtures/13448.html | 1 - .../html/test/colorize-fixtures/25920.html | 13 - .../colorize-fixtures/test-embedding.html | 6 - .../html/test/colorize-fixtures/test.html | 42 - .../test/colorize-results/12750_html.json | 442 - .../test/colorize-results/13448_html.json | 167 - .../test/colorize-results/25920_html.json | 1014 - .../colorize-results/test-embedding_html.json | 1003 - .../html/test/colorize-results/test_html.json | 3192 --- extensions/ini/.vscodeignore | 2 - extensions/ini/cgmanifest.json | 32 - .../ini/ini.language-configuration.json | 25 - extensions/ini/package.json | 37 - extensions/ini/package.nls.json | 4 - .../properties.language-configuration.json | 24 - extensions/ini/syntaxes/ini.tmLanguage.json | 113 - .../ini/test/colorize-fixtures/test.ini | 10 - .../ini/test/colorize-results/test_ini.json | 299 - extensions/java/.vscodeignore | 2 - extensions/java/cgmanifest.json | 17 - extensions/java/language-configuration.json | 33 - extensions/java/package.json | 29 - extensions/java/package.nls.json | 4 - extensions/java/snippets/java.code-snippets | 16 - extensions/java/syntaxes/java.tmLanguage.json | 1849 -- .../java/test/colorize-fixtures/basic.java | 42 - .../test/colorize-results/basic_java.json | 2312 -- extensions/javascript/.vscodeignore | 4 - extensions/javascript/cgmanifest.json | 45 - .../javascript-language-configuration.json | 35 - extensions/javascript/package.json | 132 - extensions/javascript/package.nls.json | 4 - .../snippets/javascript.code-snippets | 194 - .../syntaxes/JavaScript.tmLanguage.json | 5856 ----- .../syntaxes/JavaScriptReact.tmLanguage.json | 5856 ----- extensions/javascript/syntaxes/Readme.md | 10 - ...egular Expressions (JavaScript).tmLanguage | 237 - .../tags-language-configuration.json | 27 - .../javascript/test/colorize-fixtures/test.js | 37 - .../test/colorize-fixtures/test.jsx | 35 - .../test/colorize-fixtures/test6916.js | 1 - .../test/colorize-results/test6916_js.json | 508 - .../test/colorize-results/test_js.json | 3841 --- .../test/colorize-results/test_jsx.json | 2400 -- extensions/json/.vscodeignore | 3 - extensions/json/build/update-grammars.js | 41 - extensions/json/cgmanifest.json | 17 - extensions/json/language-configuration.json | 18 - extensions/json/package.json | 78 - extensions/json/package.nls.json | 4 - extensions/json/syntaxes/JSON.tmLanguage.json | 213 - .../json/syntaxes/JSONC.tmLanguage.json | 213 - .../json/test/colorize-fixtures/test.json | 14 - .../json/test/colorize-results/test_json.json | 1168 - extensions/less/.vscodeignore | 2 - extensions/less/cgmanifest.json | 17 - extensions/less/language-configuration.json | 35 - extensions/less/package.json | 42 - extensions/less/package.nls.json | 4 - extensions/less/syntaxes/less.tmLanguage.json | 542 - .../less/test/colorize-fixtures/14119.less | 3 - .../colorize-fixtures/test-cssvariables.less | 7 - .../less/test/colorize-fixtures/test.less | 50 - .../test/colorize-results/14119_less.json | 233 - .../test-cssvariables_less.json | 585 - .../less/test/colorize-results/test_less.json | 3511 --- extensions/log/.vscodeignore | 2 - extensions/log/cgmanifest.json | 17 - extensions/log/package.json | 35 - extensions/log/package.nls.json | 4 - extensions/log/syntaxes/log.tmLanguage.json | 125 - .../log/test/colorize-fixtures/test.log | 9 - .../log/test/colorize-results/test_log.json | 563 - extensions/lua/.vscodeignore | 2 - extensions/lua/cgmanifest.json | 32 - extensions/lua/language-configuration.json | 29 - extensions/lua/package.json | 25 - extensions/lua/package.nls.json | 4 - extensions/lua/syntaxes/lua.tmLanguage.json | 281 - .../lua/test/colorize-fixtures/test.lua | 12 - .../lua/test/colorize-results/test_lua.json | 684 - extensions/make/.vscodeignore | 2 - extensions/make/cgmanifest.json | 32 - extensions/make/language-configuration.json | 49 - extensions/make/package.json | 51 - extensions/make/package.nls.json | 4 - extensions/make/syntaxes/make.tmLanguage.json | 643 - .../make/test/colorize-fixtures/makefile | 88 - .../make/test/colorize-results/makefile.json | 3423 --- extensions/markdown-basics/.vscodeignore | 4 - extensions/markdown-basics/cgmanifest.json | 44 - .../language-configuration.json | 50 - extensions/markdown-basics/package.json | 95 - extensions/markdown-basics/package.nls.json | 4 - .../snippets/markdown.code-snippets | 92 - .../syntaxes/markdown.tmLanguage.json | 2725 -- .../test/colorize-fixtures/test-33886.md | 13 - .../test/colorize-fixtures/test.md | 106 - .../test/colorize-results/test-33886_md.json | 332 - .../test/colorize-results/test_md.json | 2631 -- extensions/objective-c/.vscodeignore | 2 - .../objective-c/build/update-grammars.js | 11 - extensions/objective-c/cgmanifest.json | 18 - .../objective-c/language-configuration.json | 25 - extensions/objective-c/package.json | 50 - extensions/objective-c/package.nls.json | 4 - .../syntaxes/objective-c++.tmLanguage.json | 7098 ------ .../syntaxes/objective-c.tmLanguage.json | 3606 --- .../objective-c/test/colorize-fixtures/test.m | 52 - .../test/colorize-fixtures/test.mm | 52 - .../test/colorize-results/test_m.json | 3093 --- .../test/colorize-results/test_mm.json | 3093 --- extensions/perl/.vscodeignore | 2 - extensions/perl/cgmanifest.json | 33 - extensions/perl/package.json | 36 - extensions/perl/package.nls.json | 4 - .../perl/perl.language-configuration.json | 32 - .../perl/perl6.language-configuration.json | 26 - extensions/perl/syntaxes/perl.tmLanguage.json | 2539 -- .../perl/syntaxes/perl6.tmLanguage.json | 315 - .../perl/test/colorize-fixtures/test.pl | 46 - .../perl/test/colorize-fixtures/test2.pl | 31 - .../perl/test/colorize-results/test2_pl.json | 3313 --- .../perl/test/colorize-results/test_pl.json | 2312 -- extensions/php/.vscode/launch.json | 17 - extensions/php/.vscode/tasks.json | 11 - extensions/php/.vscodeignore | 7 - extensions/php/build/update-grammar.js | 75 - extensions/php/cgmanifest.json | 17 - extensions/php/language-configuration.json | 37 - extensions/php/package.json | 64 - extensions/php/package.nls.json | 4 - extensions/php/snippets/php.code-snippets | 263 - extensions/php/syntaxes/html.tmLanguage.json | 189 - extensions/php/syntaxes/php.tmLanguage.json | 3685 --- .../test/colorize-fixtures/issue-28354.php | 9 - .../test/colorize-fixtures/issue-76997.php | 1 - .../php/test/colorize-fixtures/test.php | 48 - .../colorize-results/issue-28354_php.json | 541 - .../colorize-results/issue-76997_php.json | 68 - .../php/test/colorize-results/test_php.json | 3632 --- extensions/powershell/.vscodeignore | 2 - extensions/powershell/cgmanifest.json | 17 - .../powershell/language-configuration.json | 34 - extensions/powershell/package.json | 30 - extensions/powershell/package.nls.json | 4 - .../snippets/powershell.code-snippets | 16 - .../syntaxes/powershell.tmLanguage.json | 1007 - .../colorize-fixtures/test-freeze-56476.ps1 | 3 - .../test/colorize-fixtures/test.ps1 | 43 - .../test-freeze-56476_ps1.json | 35 - .../test/colorize-results/test_ps1.json | 2895 --- extensions/pug/.vscodeignore | 2 - extensions/pug/cgmanifest.json | 18 - extensions/pug/language-configuration.json | 27 - extensions/pug/package.json | 25 - extensions/pug/package.nls.json | 4 - extensions/pug/syntaxes/pug.tmLanguage.json | 987 - .../pug/test/colorize-fixtures/test-4287.pug | 3 - .../pug/test/colorize-fixtures/test.pug | 27 - .../test/colorize-results/test-4287_pug.json | 24 - .../pug/test/colorize-results/test_pug.json | 1707 -- extensions/r/.vscodeignore | 2 - extensions/r/cgmanifest.json | 17 - extensions/r/language-configuration.json | 24 - extensions/r/package.json | 25 - extensions/r/package.nls.json | 4 - extensions/r/syntaxes/r.tmLanguage.json | 540 - extensions/r/test/colorize-fixtures/test.r | 24 - .../r/test/colorize-results/test_r.json | 1047 - extensions/razor/.vscodeignore | 2 - extensions/razor/cgmanifest.json | 17 - extensions/razor/language-configuration.json | 22 - extensions/razor/package.json | 33 - extensions/razor/package.nls.json | 4 - .../razor/syntaxes/cshtml.tmLanguage.json | 341 - .../razor/test/colorize-fixtures/test.cshtml | 46 - .../test/colorize-results/test_cshtml.json | 3698 --- extensions/ruby/.vscodeignore | 2 - extensions/ruby/cgmanifest.json | 32 - extensions/ruby/language-configuration.json | 31 - extensions/ruby/package.json | 27 - extensions/ruby/package.nls.json | 4 - extensions/ruby/syntaxes/ruby.tmLanguage.json | 2775 -- .../ruby/test/colorize-fixtures/test.rb | 46 - .../ruby/test/colorize-results/test_rb.json | 2840 --- extensions/rust/.vscodeignore | 2 - extensions/rust/cgmanifest.json | 18 - extensions/rust/language-configuration.json | 33 - extensions/rust/package.json | 36 - extensions/rust/package.nls.json | 4 - extensions/rust/syntaxes/rust.tmLanguage.json | 1145 - .../rust/test/colorize-fixtures/test-6611.rs | 26 - .../rust/test/colorize-fixtures/test.rs | 15 - .../test/colorize-results/test-6611_rs.json | 1542 -- .../rust/test/colorize-results/test_rs.json | 893 - extensions/scss/.vscodeignore | 2 - extensions/scss/cgmanifest.json | 18 - extensions/scss/language-configuration.json | 31 - extensions/scss/package.json | 64 - extensions/scss/package.nls.json | 4 - .../scss/syntaxes/sassdoc.tmLanguage.json | 354 - extensions/scss/syntaxes/scss.tmLanguage.json | 1879 -- .../colorize-fixtures/test-cssvariables.scss | 7 - .../scss/test/colorize-fixtures/test.scss | 340 - .../test-cssvariables_scss.json | 552 - .../scss/test/colorize-results/test_scss.json | 21023 ---------------- extensions/shaderlab/.vscodeignore | 2 - extensions/shaderlab/cgmanifest.json | 17 - .../shaderlab/language-configuration.json | 23 - extensions/shaderlab/package.json | 36 - extensions/shaderlab/package.nls.json | 4 - .../syntaxes/shaderlab.tmLanguage.json | 204 - .../test/colorize-fixtures/test.shader | 15 - .../test/colorize-results/test_shader.json | 574 - extensions/shellscript/.vscodeignore | 2 - extensions/shellscript/cgmanifest.json | 18 - .../shellscript/language-configuration.json | 32 - extensions/shellscript/package.json | 70 - extensions/shellscript/package.nls.json | 4 - .../syntaxes/shell-unix-bash.tmLanguage.json | 1283 - .../test/colorize-fixtures/test.sh | 30 - .../test/colorize-results/test_sh.json | 1960 -- extensions/sql/.vscodeignore | 2 - extensions/sql/build/update-grammar.js | 10 - extensions/sql/cgmanifest.json | 17 - extensions/sql/language-configuration.json | 34 - extensions/sql/package.json | 36 - extensions/sql/package.nls.json | 4 - extensions/sql/syntaxes/sql.tmLanguage.json | 519 - .../sql/test/colorize-fixtures/test.sql | 6 - .../sql/test/colorize-results/test_sql.json | 321 - extensions/swift/.vscodeignore | 2 - extensions/swift/LICENSE.md | 45 - extensions/swift/cgmanifest.json | 74 - extensions/swift/language-configuration.json | 27 - extensions/swift/package.json | 29 - extensions/swift/package.nls.json | 4 - extensions/swift/snippets/swift.code-snippets | 175 - .../swift/syntaxes/swift.tmLanguage.json | 3239 --- .../swift/test/colorize-fixtures/test.swift | 13 - .../test/colorize-results/test_swift.json | 805 - extensions/typescript-basics/.vscodeignore | 6 - .../build/update-grammars.js | 84 - extensions/typescript-basics/cgmanifest.json | 18 - .../language-configuration.json | 36 - extensions/typescript-basics/package.json | 171 - extensions/typescript-basics/package.nls.json | 4 - .../snippets/typescript.code-snippets | 309 - .../typescript-basics/syntaxes/Readme.md | 16 - .../syntaxes/TypeScript.tmLanguage.json | 5603 ---- .../syntaxes/TypeScriptReact.tmLanguage.json | 5856 ----- .../jsdoc.js.injection.tmLanguage.json | 21 - .../jsdoc.ts.injection.tmLanguage.json | 21 - .../test/colorize-fixtures/test-brackets.tsx | 6 - .../colorize-fixtures/test-function-inv.ts | 1 - .../test/colorize-fixtures/test-issue11.ts | 17 - .../test/colorize-fixtures/test-issue5431.ts | 4 - .../test/colorize-fixtures/test-issue5465.ts | 4 - .../test/colorize-fixtures/test-issue5566.ts | 3 - .../test-jsdoc-multiline-type.ts | 22 - .../test/colorize-fixtures/test-keywords.ts | 1 - .../test/colorize-fixtures/test-members.ts | 5 - .../colorize-fixtures/test-object-literals.ts | 6 - .../test/colorize-fixtures/test-strings.ts | 4 - .../test/colorize-fixtures/test-this.ts | 3 - .../test/colorize-fixtures/test.ts | 111 - .../test/colorize-fixtures/tsconfig_off.json | 5 - .../colorize-results/test-brackets_tsx.json | 442 - .../test-function-inv_ts.json | 222 - .../colorize-results/test-issue11_ts.json | 3401 --- .../colorize-results/test-issue5431_ts.json | 519 - .../colorize-results/test-issue5465_ts.json | 288 - .../colorize-results/test-issue5566_ts.json | 409 - .../test-jsdoc-multiline-type_ts.json | 684 - .../colorize-results/test-keywords_ts.json | 233 - .../colorize-results/test-members_ts.json | 409 - .../test-object-literals_ts.json | 299 - .../colorize-results/test-strings_ts.json | 574 - .../test/colorize-results/test-this_ts.json | 123 - .../test/colorize-results/test_ts.json | 11420 --------- .../colorize-results/tsconfig_off_json.json | 222 - extensions/vb/.vscodeignore | 2 - extensions/vb/cgmanifest.json | 32 - extensions/vb/language-configuration.json | 30 - extensions/vb/package.json | 29 - extensions/vb/package.nls.json | 4 - extensions/vb/snippets/vb.code-snippets | 86 - .../vb/syntaxes/asp-vb-net.tmlanguage.json | 238 - extensions/vb/test/colorize-fixtures/test.vb | 25 - .../vb/test/colorize-results/test_vb.json | 2180 -- extensions/vscode-colorize-tests/.gitignore | 2 - .../vscode-colorize-tests/.vscode/launch.json | 17 - .../vscode-colorize-tests/.vscode/tasks.json | 11 - extensions/vscode-colorize-tests/package.json | 56 - .../producticons/ElegantIcons.woff | Bin 63664 -> 0 bytes .../producticons/index.html | 3049 --- .../producticons/mit_license.txt | 21 - .../producticons/test-product-icon-theme.json | 43 - .../src/colorizer.test.ts | 76 - .../src/colorizerTestMain.ts | 73 - extensions/vscode-colorize-tests/src/index.ts | 30 - .../src/typings/ref.d.ts | 9 - .../test/semantic-test/.vscode/settings.json | 13 - .../test/semantic-test/semantic-test.json | 9 - .../vscode-colorize-tests/tsconfig.json | 9 - extensions/vscode-colorize-tests/yarn.lock | 13 - extensions/xml/.vscodeignore | 2 - extensions/xml/cgmanifest.json | 18 - extensions/xml/package.json | 99 - extensions/xml/package.nls.json | 4 - extensions/xml/syntaxes/xml.tmLanguage.json | 387 - extensions/xml/syntaxes/xsl.tmLanguage.json | 94 - .../xml/test/colorize-fixtures/test-7115.xml | 7 - .../xml/test/colorize-fixtures/test.xml | 20 - .../test/colorize-results/test-7115_xml.json | 585 - .../xml/test/colorize-results/test_xml.json | 1806 -- .../xml/xml.language-configuration.json | 34 - .../xml/xsl.language-configuration.json | 24 - extensions/yaml/.vscodeignore | 2 - extensions/yaml/cgmanifest.json | 37 - extensions/yaml/language-configuration.json | 35 - extensions/yaml/package.json | 47 - extensions/yaml/package.nls.json | 4 - extensions/yaml/syntaxes/yaml.tmLanguage.json | 621 - .../test/colorize-fixtures/issue-1550.yaml | 4 - .../test/colorize-fixtures/issue-4008.yaml | 4 - .../test/colorize-fixtures/issue-6303.yaml | 9 - .../yaml/test/colorize-fixtures/test.yaml | 18 - .../colorize-results/issue-1550_yaml.json | 222 - .../colorize-results/issue-4008_yaml.json | 266 - .../colorize-results/issue-6303_yaml.json | 310 - .../yaml/test/colorize-results/test_yaml.json | 1135 - 472 files changed, 282024 deletions(-) delete mode 100644 extensions/bat/.vscodeignore delete mode 100644 extensions/bat/cgmanifest.json delete mode 100644 extensions/bat/language-configuration.json delete mode 100644 extensions/bat/package.json delete mode 100644 extensions/bat/package.nls.json delete mode 100644 extensions/bat/snippets/batchfile.code-snippets delete mode 100644 extensions/bat/syntaxes/batchfile.tmLanguage.json delete mode 100644 extensions/bat/test/colorize-fixtures/test.bat delete mode 100644 extensions/bat/test/colorize-results/test_bat.json delete mode 100644 extensions/clojure/.vscodeignore delete mode 100644 extensions/clojure/cgmanifest.json delete mode 100644 extensions/clojure/language-configuration.json delete mode 100644 extensions/clojure/package.json delete mode 100644 extensions/clojure/package.nls.json delete mode 100644 extensions/clojure/syntaxes/clojure.tmLanguage.json delete mode 100644 extensions/clojure/test/colorize-fixtures/test.clj delete mode 100644 extensions/clojure/test/colorize-results/test_clj.json delete mode 100644 extensions/coffeescript/.vscodeignore delete mode 100644 extensions/coffeescript/cgmanifest.json delete mode 100644 extensions/coffeescript/language-configuration.json delete mode 100644 extensions/coffeescript/package.json delete mode 100644 extensions/coffeescript/package.nls.json delete mode 100644 extensions/coffeescript/snippets/coffeescript.code-snippets delete mode 100644 extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json delete mode 100644 extensions/coffeescript/test/colorize-fixtures/test-regex.coffee delete mode 100644 extensions/coffeescript/test/colorize-fixtures/test.coffee delete mode 100644 extensions/coffeescript/test/colorize-results/test-regex_coffee.json delete mode 100644 extensions/coffeescript/test/colorize-results/test_coffee.json delete mode 100644 extensions/cpp/.vscodeignore delete mode 100644 extensions/cpp/build/update-grammars.js delete mode 100644 extensions/cpp/cgmanifest.json delete mode 100644 extensions/cpp/language-configuration.json delete mode 100644 extensions/cpp/package.json delete mode 100644 extensions/cpp/package.nls.json delete mode 100644 extensions/cpp/snippets/c.code-snippets delete mode 100644 extensions/cpp/snippets/cpp.code-snippets delete mode 100644 extensions/cpp/syntaxes/c.tmLanguage.json delete mode 100644 extensions/cpp/syntaxes/cpp.embedded.macro.tmLanguage.json delete mode 100644 extensions/cpp/syntaxes/cpp.tmLanguage.json delete mode 100644 extensions/cpp/syntaxes/platform.tmLanguage.json delete mode 100644 extensions/cpp/test/colorize-fixtures/test-23630.cpp delete mode 100644 extensions/cpp/test/colorize-fixtures/test-23850.cpp delete mode 100644 extensions/cpp/test/colorize-fixtures/test-78769.cpp delete mode 100644 extensions/cpp/test/colorize-fixtures/test-80644.cpp delete mode 100644 extensions/cpp/test/colorize-fixtures/test-92369.cpp delete mode 100644 extensions/cpp/test/colorize-fixtures/test.c delete mode 100644 extensions/cpp/test/colorize-fixtures/test.cc delete mode 100644 extensions/cpp/test/colorize-fixtures/test.cpp delete mode 100644 extensions/cpp/test/colorize-results/test-23630_cpp.json delete mode 100644 extensions/cpp/test/colorize-results/test-23850_cpp.json delete mode 100644 extensions/cpp/test/colorize-results/test-78769_cpp.json delete mode 100644 extensions/cpp/test/colorize-results/test-80644_cpp.json delete mode 100644 extensions/cpp/test/colorize-results/test-92369_cpp.json delete mode 100644 extensions/cpp/test/colorize-results/test_c.json delete mode 100644 extensions/cpp/test/colorize-results/test_cc.json delete mode 100644 extensions/cpp/test/colorize-results/test_cpp.json delete mode 100644 extensions/csharp/.vscodeignore delete mode 100644 extensions/csharp/cgmanifest.json delete mode 100644 extensions/csharp/language-configuration.json delete mode 100644 extensions/csharp/package.json delete mode 100644 extensions/csharp/package.nls.json delete mode 100644 extensions/csharp/snippets/csharp.code-snippets delete mode 100644 extensions/csharp/syntaxes/csharp.tmLanguage.json delete mode 100644 extensions/csharp/test/colorize-fixtures/test.cs delete mode 100644 extensions/csharp/test/colorize-results/test_cs.json delete mode 100644 extensions/css/.vscode/launch.json delete mode 100644 extensions/css/.vscodeignore delete mode 100644 extensions/css/cgmanifest.json delete mode 100644 extensions/css/language-configuration.json delete mode 100644 extensions/css/package.json delete mode 100644 extensions/css/package.nls.json delete mode 100644 extensions/css/syntaxes/css.tmLanguage.json delete mode 100644 extensions/css/test/colorize-fixtures/test-variables.css delete mode 100644 extensions/css/test/colorize-fixtures/test.css delete mode 100644 extensions/css/test/colorize-results/test-variables_css.json delete mode 100644 extensions/css/test/colorize-results/test_css.json delete mode 100644 extensions/docker/.vscodeignore delete mode 100644 extensions/docker/cgmanifest.json delete mode 100644 extensions/docker/language-configuration.json delete mode 100644 extensions/docker/package.json delete mode 100644 extensions/docker/package.nls.json delete mode 100644 extensions/docker/syntaxes/docker.tmLanguage.json delete mode 100644 extensions/docker/test/colorize-fixtures/Dockerfile delete mode 100644 extensions/docker/test/colorize-results/Dockerfile.json delete mode 100644 extensions/fsharp/.vscodeignore delete mode 100644 extensions/fsharp/cgmanifest.json delete mode 100644 extensions/fsharp/language-configuration.json delete mode 100644 extensions/fsharp/package.json delete mode 100644 extensions/fsharp/package.nls.json delete mode 100644 extensions/fsharp/snippets/fsharp.code-snippets delete mode 100644 extensions/fsharp/syntaxes/fsharp.tmLanguage.json delete mode 100644 extensions/fsharp/test/colorize-fixtures/test.fs delete mode 100644 extensions/fsharp/test/colorize-results/test_fs.json delete mode 100644 extensions/go/.vscodeignore delete mode 100644 extensions/go/cgmanifest.json delete mode 100644 extensions/go/language-configuration.json delete mode 100644 extensions/go/package.json delete mode 100644 extensions/go/package.nls.json delete mode 100644 extensions/go/syntaxes/go.tmLanguage.json delete mode 100644 extensions/go/test/colorize-fixtures/test-13777.go delete mode 100644 extensions/go/test/colorize-fixtures/test.go delete mode 100644 extensions/go/test/colorize-results/test-13777_go.json delete mode 100644 extensions/go/test/colorize-results/test_go.json delete mode 100644 extensions/groovy/.vscodeignore delete mode 100644 extensions/groovy/cgmanifest.json delete mode 100644 extensions/groovy/language-configuration.json delete mode 100644 extensions/groovy/package.json delete mode 100644 extensions/groovy/package.nls.json delete mode 100644 extensions/groovy/snippets/groovy.code-snippets delete mode 100644 extensions/groovy/syntaxes/groovy.tmLanguage.json delete mode 100644 extensions/groovy/test/colorize-fixtures/test.groovy delete mode 100644 extensions/groovy/test/colorize-results/test_groovy.json delete mode 100644 extensions/handlebars/.vscodeignore delete mode 100644 extensions/handlebars/cgmanifest.json delete mode 100644 extensions/handlebars/language-configuration.json delete mode 100644 extensions/handlebars/package.json delete mode 100644 extensions/handlebars/package.nls.json delete mode 100644 extensions/handlebars/syntaxes/Handlebars.tmLanguage.json delete mode 100644 extensions/handlebars/test/colorize-fixtures/test.handlebars delete mode 100644 extensions/handlebars/test/colorize-fixtures/test.hbs delete mode 100644 extensions/handlebars/test/colorize-results/test_handlebars.json delete mode 100644 extensions/handlebars/test/colorize-results/test_hbs.json delete mode 100644 extensions/hlsl/.vscodeignore delete mode 100644 extensions/hlsl/cgmanifest.json delete mode 100644 extensions/hlsl/language-configuration.json delete mode 100644 extensions/hlsl/package.json delete mode 100644 extensions/hlsl/package.nls.json delete mode 100644 extensions/hlsl/syntaxes/hlsl.tmLanguage.json delete mode 100644 extensions/hlsl/test/colorize-fixtures/test.hlsl delete mode 100644 extensions/hlsl/test/colorize-results/test_hlsl.json delete mode 100644 extensions/html/.vscodeignore delete mode 100644 extensions/html/build/update-grammar.js delete mode 100644 extensions/html/cgmanifest.json delete mode 100644 extensions/html/language-configuration.json delete mode 100644 extensions/html/package.json delete mode 100644 extensions/html/package.nls.json delete mode 100644 extensions/html/syntaxes/html-derivative.tmLanguage.json delete mode 100644 extensions/html/syntaxes/html.tmLanguage.json delete mode 100644 extensions/html/test/colorize-fixtures/12750.html delete mode 100644 extensions/html/test/colorize-fixtures/13448.html delete mode 100644 extensions/html/test/colorize-fixtures/25920.html delete mode 100644 extensions/html/test/colorize-fixtures/test-embedding.html delete mode 100644 extensions/html/test/colorize-fixtures/test.html delete mode 100644 extensions/html/test/colorize-results/12750_html.json delete mode 100644 extensions/html/test/colorize-results/13448_html.json delete mode 100644 extensions/html/test/colorize-results/25920_html.json delete mode 100644 extensions/html/test/colorize-results/test-embedding_html.json delete mode 100644 extensions/html/test/colorize-results/test_html.json delete mode 100644 extensions/ini/.vscodeignore delete mode 100644 extensions/ini/cgmanifest.json delete mode 100644 extensions/ini/ini.language-configuration.json delete mode 100644 extensions/ini/package.json delete mode 100644 extensions/ini/package.nls.json delete mode 100644 extensions/ini/properties.language-configuration.json delete mode 100644 extensions/ini/syntaxes/ini.tmLanguage.json delete mode 100644 extensions/ini/test/colorize-fixtures/test.ini delete mode 100644 extensions/ini/test/colorize-results/test_ini.json delete mode 100644 extensions/java/.vscodeignore delete mode 100644 extensions/java/cgmanifest.json delete mode 100644 extensions/java/language-configuration.json delete mode 100644 extensions/java/package.json delete mode 100644 extensions/java/package.nls.json delete mode 100644 extensions/java/snippets/java.code-snippets delete mode 100644 extensions/java/syntaxes/java.tmLanguage.json delete mode 100644 extensions/java/test/colorize-fixtures/basic.java delete mode 100644 extensions/java/test/colorize-results/basic_java.json delete mode 100644 extensions/javascript/.vscodeignore delete mode 100644 extensions/javascript/cgmanifest.json delete mode 100644 extensions/javascript/javascript-language-configuration.json delete mode 100644 extensions/javascript/package.json delete mode 100644 extensions/javascript/package.nls.json delete mode 100644 extensions/javascript/snippets/javascript.code-snippets delete mode 100644 extensions/javascript/syntaxes/JavaScript.tmLanguage.json delete mode 100644 extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json delete mode 100644 extensions/javascript/syntaxes/Readme.md delete mode 100644 extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage delete mode 100644 extensions/javascript/tags-language-configuration.json delete mode 100644 extensions/javascript/test/colorize-fixtures/test.js delete mode 100644 extensions/javascript/test/colorize-fixtures/test.jsx delete mode 100644 extensions/javascript/test/colorize-fixtures/test6916.js delete mode 100644 extensions/javascript/test/colorize-results/test6916_js.json delete mode 100644 extensions/javascript/test/colorize-results/test_js.json delete mode 100644 extensions/javascript/test/colorize-results/test_jsx.json delete mode 100644 extensions/json/.vscodeignore delete mode 100644 extensions/json/build/update-grammars.js delete mode 100644 extensions/json/cgmanifest.json delete mode 100644 extensions/json/language-configuration.json delete mode 100644 extensions/json/package.json delete mode 100644 extensions/json/package.nls.json delete mode 100644 extensions/json/syntaxes/JSON.tmLanguage.json delete mode 100644 extensions/json/syntaxes/JSONC.tmLanguage.json delete mode 100644 extensions/json/test/colorize-fixtures/test.json delete mode 100644 extensions/json/test/colorize-results/test_json.json delete mode 100644 extensions/less/.vscodeignore delete mode 100644 extensions/less/cgmanifest.json delete mode 100644 extensions/less/language-configuration.json delete mode 100644 extensions/less/package.json delete mode 100644 extensions/less/package.nls.json delete mode 100644 extensions/less/syntaxes/less.tmLanguage.json delete mode 100644 extensions/less/test/colorize-fixtures/14119.less delete mode 100644 extensions/less/test/colorize-fixtures/test-cssvariables.less delete mode 100644 extensions/less/test/colorize-fixtures/test.less delete mode 100644 extensions/less/test/colorize-results/14119_less.json delete mode 100644 extensions/less/test/colorize-results/test-cssvariables_less.json delete mode 100644 extensions/less/test/colorize-results/test_less.json delete mode 100644 extensions/log/.vscodeignore delete mode 100644 extensions/log/cgmanifest.json delete mode 100644 extensions/log/package.json delete mode 100644 extensions/log/package.nls.json delete mode 100644 extensions/log/syntaxes/log.tmLanguage.json delete mode 100644 extensions/log/test/colorize-fixtures/test.log delete mode 100644 extensions/log/test/colorize-results/test_log.json delete mode 100644 extensions/lua/.vscodeignore delete mode 100644 extensions/lua/cgmanifest.json delete mode 100644 extensions/lua/language-configuration.json delete mode 100644 extensions/lua/package.json delete mode 100644 extensions/lua/package.nls.json delete mode 100644 extensions/lua/syntaxes/lua.tmLanguage.json delete mode 100644 extensions/lua/test/colorize-fixtures/test.lua delete mode 100644 extensions/lua/test/colorize-results/test_lua.json delete mode 100644 extensions/make/.vscodeignore delete mode 100644 extensions/make/cgmanifest.json delete mode 100644 extensions/make/language-configuration.json delete mode 100644 extensions/make/package.json delete mode 100644 extensions/make/package.nls.json delete mode 100644 extensions/make/syntaxes/make.tmLanguage.json delete mode 100644 extensions/make/test/colorize-fixtures/makefile delete mode 100644 extensions/make/test/colorize-results/makefile.json delete mode 100644 extensions/markdown-basics/.vscodeignore delete mode 100644 extensions/markdown-basics/cgmanifest.json delete mode 100644 extensions/markdown-basics/language-configuration.json delete mode 100644 extensions/markdown-basics/package.json delete mode 100644 extensions/markdown-basics/package.nls.json delete mode 100644 extensions/markdown-basics/snippets/markdown.code-snippets delete mode 100644 extensions/markdown-basics/syntaxes/markdown.tmLanguage.json delete mode 100644 extensions/markdown-basics/test/colorize-fixtures/test-33886.md delete mode 100644 extensions/markdown-basics/test/colorize-fixtures/test.md delete mode 100644 extensions/markdown-basics/test/colorize-results/test-33886_md.json delete mode 100644 extensions/markdown-basics/test/colorize-results/test_md.json delete mode 100644 extensions/objective-c/.vscodeignore delete mode 100644 extensions/objective-c/build/update-grammars.js delete mode 100644 extensions/objective-c/cgmanifest.json delete mode 100644 extensions/objective-c/language-configuration.json delete mode 100644 extensions/objective-c/package.json delete mode 100644 extensions/objective-c/package.nls.json delete mode 100644 extensions/objective-c/syntaxes/objective-c++.tmLanguage.json delete mode 100644 extensions/objective-c/syntaxes/objective-c.tmLanguage.json delete mode 100644 extensions/objective-c/test/colorize-fixtures/test.m delete mode 100644 extensions/objective-c/test/colorize-fixtures/test.mm delete mode 100644 extensions/objective-c/test/colorize-results/test_m.json delete mode 100644 extensions/objective-c/test/colorize-results/test_mm.json delete mode 100644 extensions/perl/.vscodeignore delete mode 100644 extensions/perl/cgmanifest.json delete mode 100644 extensions/perl/package.json delete mode 100644 extensions/perl/package.nls.json delete mode 100644 extensions/perl/perl.language-configuration.json delete mode 100644 extensions/perl/perl6.language-configuration.json delete mode 100644 extensions/perl/syntaxes/perl.tmLanguage.json delete mode 100644 extensions/perl/syntaxes/perl6.tmLanguage.json delete mode 100644 extensions/perl/test/colorize-fixtures/test.pl delete mode 100644 extensions/perl/test/colorize-fixtures/test2.pl delete mode 100644 extensions/perl/test/colorize-results/test2_pl.json delete mode 100644 extensions/perl/test/colorize-results/test_pl.json delete mode 100644 extensions/php/.vscode/launch.json delete mode 100644 extensions/php/.vscode/tasks.json delete mode 100644 extensions/php/.vscodeignore delete mode 100644 extensions/php/build/update-grammar.js delete mode 100644 extensions/php/cgmanifest.json delete mode 100644 extensions/php/language-configuration.json delete mode 100644 extensions/php/package.json delete mode 100644 extensions/php/package.nls.json delete mode 100644 extensions/php/snippets/php.code-snippets delete mode 100644 extensions/php/syntaxes/html.tmLanguage.json delete mode 100644 extensions/php/syntaxes/php.tmLanguage.json delete mode 100644 extensions/php/test/colorize-fixtures/issue-28354.php delete mode 100644 extensions/php/test/colorize-fixtures/issue-76997.php delete mode 100644 extensions/php/test/colorize-fixtures/test.php delete mode 100644 extensions/php/test/colorize-results/issue-28354_php.json delete mode 100644 extensions/php/test/colorize-results/issue-76997_php.json delete mode 100644 extensions/php/test/colorize-results/test_php.json delete mode 100644 extensions/powershell/.vscodeignore delete mode 100644 extensions/powershell/cgmanifest.json delete mode 100644 extensions/powershell/language-configuration.json delete mode 100644 extensions/powershell/package.json delete mode 100644 extensions/powershell/package.nls.json delete mode 100644 extensions/powershell/snippets/powershell.code-snippets delete mode 100644 extensions/powershell/syntaxes/powershell.tmLanguage.json delete mode 100644 extensions/powershell/test/colorize-fixtures/test-freeze-56476.ps1 delete mode 100644 extensions/powershell/test/colorize-fixtures/test.ps1 delete mode 100644 extensions/powershell/test/colorize-results/test-freeze-56476_ps1.json delete mode 100644 extensions/powershell/test/colorize-results/test_ps1.json delete mode 100644 extensions/pug/.vscodeignore delete mode 100644 extensions/pug/cgmanifest.json delete mode 100644 extensions/pug/language-configuration.json delete mode 100644 extensions/pug/package.json delete mode 100644 extensions/pug/package.nls.json delete mode 100644 extensions/pug/syntaxes/pug.tmLanguage.json delete mode 100644 extensions/pug/test/colorize-fixtures/test-4287.pug delete mode 100644 extensions/pug/test/colorize-fixtures/test.pug delete mode 100644 extensions/pug/test/colorize-results/test-4287_pug.json delete mode 100644 extensions/pug/test/colorize-results/test_pug.json delete mode 100644 extensions/r/.vscodeignore delete mode 100644 extensions/r/cgmanifest.json delete mode 100644 extensions/r/language-configuration.json delete mode 100644 extensions/r/package.json delete mode 100644 extensions/r/package.nls.json delete mode 100644 extensions/r/syntaxes/r.tmLanguage.json delete mode 100644 extensions/r/test/colorize-fixtures/test.r delete mode 100644 extensions/r/test/colorize-results/test_r.json delete mode 100644 extensions/razor/.vscodeignore delete mode 100644 extensions/razor/cgmanifest.json delete mode 100644 extensions/razor/language-configuration.json delete mode 100644 extensions/razor/package.json delete mode 100644 extensions/razor/package.nls.json delete mode 100644 extensions/razor/syntaxes/cshtml.tmLanguage.json delete mode 100644 extensions/razor/test/colorize-fixtures/test.cshtml delete mode 100644 extensions/razor/test/colorize-results/test_cshtml.json delete mode 100644 extensions/ruby/.vscodeignore delete mode 100644 extensions/ruby/cgmanifest.json delete mode 100644 extensions/ruby/language-configuration.json delete mode 100644 extensions/ruby/package.json delete mode 100644 extensions/ruby/package.nls.json delete mode 100644 extensions/ruby/syntaxes/ruby.tmLanguage.json delete mode 100644 extensions/ruby/test/colorize-fixtures/test.rb delete mode 100644 extensions/ruby/test/colorize-results/test_rb.json delete mode 100644 extensions/rust/.vscodeignore delete mode 100644 extensions/rust/cgmanifest.json delete mode 100644 extensions/rust/language-configuration.json delete mode 100644 extensions/rust/package.json delete mode 100644 extensions/rust/package.nls.json delete mode 100644 extensions/rust/syntaxes/rust.tmLanguage.json delete mode 100644 extensions/rust/test/colorize-fixtures/test-6611.rs delete mode 100644 extensions/rust/test/colorize-fixtures/test.rs delete mode 100644 extensions/rust/test/colorize-results/test-6611_rs.json delete mode 100644 extensions/rust/test/colorize-results/test_rs.json delete mode 100644 extensions/scss/.vscodeignore delete mode 100644 extensions/scss/cgmanifest.json delete mode 100644 extensions/scss/language-configuration.json delete mode 100644 extensions/scss/package.json delete mode 100644 extensions/scss/package.nls.json delete mode 100644 extensions/scss/syntaxes/sassdoc.tmLanguage.json delete mode 100644 extensions/scss/syntaxes/scss.tmLanguage.json delete mode 100644 extensions/scss/test/colorize-fixtures/test-cssvariables.scss delete mode 100644 extensions/scss/test/colorize-fixtures/test.scss delete mode 100644 extensions/scss/test/colorize-results/test-cssvariables_scss.json delete mode 100644 extensions/scss/test/colorize-results/test_scss.json delete mode 100644 extensions/shaderlab/.vscodeignore delete mode 100644 extensions/shaderlab/cgmanifest.json delete mode 100644 extensions/shaderlab/language-configuration.json delete mode 100644 extensions/shaderlab/package.json delete mode 100644 extensions/shaderlab/package.nls.json delete mode 100644 extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json delete mode 100644 extensions/shaderlab/test/colorize-fixtures/test.shader delete mode 100644 extensions/shaderlab/test/colorize-results/test_shader.json delete mode 100644 extensions/shellscript/.vscodeignore delete mode 100644 extensions/shellscript/cgmanifest.json delete mode 100644 extensions/shellscript/language-configuration.json delete mode 100644 extensions/shellscript/package.json delete mode 100644 extensions/shellscript/package.nls.json delete mode 100644 extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json delete mode 100644 extensions/shellscript/test/colorize-fixtures/test.sh delete mode 100644 extensions/shellscript/test/colorize-results/test_sh.json delete mode 100644 extensions/sql/.vscodeignore delete mode 100644 extensions/sql/build/update-grammar.js delete mode 100644 extensions/sql/cgmanifest.json delete mode 100644 extensions/sql/language-configuration.json delete mode 100644 extensions/sql/package.json delete mode 100644 extensions/sql/package.nls.json delete mode 100644 extensions/sql/syntaxes/sql.tmLanguage.json delete mode 100644 extensions/sql/test/colorize-fixtures/test.sql delete mode 100644 extensions/sql/test/colorize-results/test_sql.json delete mode 100644 extensions/swift/.vscodeignore delete mode 100644 extensions/swift/LICENSE.md delete mode 100644 extensions/swift/cgmanifest.json delete mode 100644 extensions/swift/language-configuration.json delete mode 100644 extensions/swift/package.json delete mode 100644 extensions/swift/package.nls.json delete mode 100644 extensions/swift/snippets/swift.code-snippets delete mode 100644 extensions/swift/syntaxes/swift.tmLanguage.json delete mode 100644 extensions/swift/test/colorize-fixtures/test.swift delete mode 100644 extensions/swift/test/colorize-results/test_swift.json delete mode 100644 extensions/typescript-basics/.vscodeignore delete mode 100644 extensions/typescript-basics/build/update-grammars.js delete mode 100644 extensions/typescript-basics/cgmanifest.json delete mode 100644 extensions/typescript-basics/language-configuration.json delete mode 100644 extensions/typescript-basics/package.json delete mode 100644 extensions/typescript-basics/package.nls.json delete mode 100644 extensions/typescript-basics/snippets/typescript.code-snippets delete mode 100644 extensions/typescript-basics/syntaxes/Readme.md delete mode 100644 extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json delete mode 100644 extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json delete mode 100644 extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json delete mode 100644 extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-brackets.tsx delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-function-inv.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-issue11.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-issue5431.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-issue5465.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-issue5566.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-jsdoc-multiline-type.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-keywords.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-members.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-object-literals.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-strings.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test-this.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/test.ts delete mode 100644 extensions/typescript-basics/test/colorize-fixtures/tsconfig_off.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-brackets_tsx.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-function-inv_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-issue11_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-issue5431_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-issue5465_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-issue5566_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-jsdoc-multiline-type_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-keywords_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-members_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-object-literals_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-strings_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test-this_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/test_ts.json delete mode 100644 extensions/typescript-basics/test/colorize-results/tsconfig_off_json.json delete mode 100644 extensions/vb/.vscodeignore delete mode 100644 extensions/vb/cgmanifest.json delete mode 100644 extensions/vb/language-configuration.json delete mode 100644 extensions/vb/package.json delete mode 100644 extensions/vb/package.nls.json delete mode 100644 extensions/vb/snippets/vb.code-snippets delete mode 100644 extensions/vb/syntaxes/asp-vb-net.tmlanguage.json delete mode 100644 extensions/vb/test/colorize-fixtures/test.vb delete mode 100644 extensions/vb/test/colorize-results/test_vb.json delete mode 100644 extensions/vscode-colorize-tests/.gitignore delete mode 100644 extensions/vscode-colorize-tests/.vscode/launch.json delete mode 100644 extensions/vscode-colorize-tests/.vscode/tasks.json delete mode 100644 extensions/vscode-colorize-tests/package.json delete mode 100644 extensions/vscode-colorize-tests/producticons/ElegantIcons.woff delete mode 100644 extensions/vscode-colorize-tests/producticons/index.html delete mode 100644 extensions/vscode-colorize-tests/producticons/mit_license.txt delete mode 100644 extensions/vscode-colorize-tests/producticons/test-product-icon-theme.json delete mode 100644 extensions/vscode-colorize-tests/src/colorizer.test.ts delete mode 100644 extensions/vscode-colorize-tests/src/colorizerTestMain.ts delete mode 100644 extensions/vscode-colorize-tests/src/index.ts delete mode 100644 extensions/vscode-colorize-tests/src/typings/ref.d.ts delete mode 100644 extensions/vscode-colorize-tests/test/semantic-test/.vscode/settings.json delete mode 100644 extensions/vscode-colorize-tests/test/semantic-test/semantic-test.json delete mode 100644 extensions/vscode-colorize-tests/tsconfig.json delete mode 100644 extensions/vscode-colorize-tests/yarn.lock delete mode 100644 extensions/xml/.vscodeignore delete mode 100644 extensions/xml/cgmanifest.json delete mode 100644 extensions/xml/package.json delete mode 100644 extensions/xml/package.nls.json delete mode 100644 extensions/xml/syntaxes/xml.tmLanguage.json delete mode 100644 extensions/xml/syntaxes/xsl.tmLanguage.json delete mode 100644 extensions/xml/test/colorize-fixtures/test-7115.xml delete mode 100644 extensions/xml/test/colorize-fixtures/test.xml delete mode 100644 extensions/xml/test/colorize-results/test-7115_xml.json delete mode 100644 extensions/xml/test/colorize-results/test_xml.json delete mode 100644 extensions/xml/xml.language-configuration.json delete mode 100644 extensions/xml/xsl.language-configuration.json delete mode 100644 extensions/yaml/.vscodeignore delete mode 100644 extensions/yaml/cgmanifest.json delete mode 100644 extensions/yaml/language-configuration.json delete mode 100644 extensions/yaml/package.json delete mode 100644 extensions/yaml/package.nls.json delete mode 100644 extensions/yaml/syntaxes/yaml.tmLanguage.json delete mode 100644 extensions/yaml/test/colorize-fixtures/issue-1550.yaml delete mode 100644 extensions/yaml/test/colorize-fixtures/issue-4008.yaml delete mode 100644 extensions/yaml/test/colorize-fixtures/issue-6303.yaml delete mode 100644 extensions/yaml/test/colorize-fixtures/test.yaml delete mode 100644 extensions/yaml/test/colorize-results/issue-1550_yaml.json delete mode 100644 extensions/yaml/test/colorize-results/issue-4008_yaml.json delete mode 100644 extensions/yaml/test/colorize-results/issue-6303_yaml.json delete mode 100644 extensions/yaml/test/colorize-results/test_yaml.json diff --git a/extensions/bat/.vscodeignore b/extensions/bat/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/bat/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/bat/cgmanifest.json b/extensions/bat/cgmanifest.json deleted file mode 100644 index 5bc3e285f0c..00000000000 --- a/extensions/bat/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "mmims/language-batchfile", - "repositoryUrl": "https://github.com/mmims/language-batchfile", - "commitHash": "95ea8c699f7a8296b15767069868532d52631c46" - } - }, - "license": "MIT", - "version": "0.7.5" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/bat/language-configuration.json b/extensions/bat/language-configuration.json deleted file mode 100644 index e205fb5f5c4..00000000000 --- a/extensions/bat/language-configuration.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "comments": { - "lineComment": "@REM" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["%", "%"], - ["\"", "\""] - ], - "folding": { - "markers": { - "start": "^\\s*(::|REM|@REM)\\s*#region", - "end": "^\\s*(::|REM|@REM)\\s*#endregion" - } - } -} diff --git a/extensions/bat/package.json b/extensions/bat/package.json deleted file mode 100644 index dc543aef402..00000000000 --- a/extensions/bat/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "bat", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js mmims/language-batchfile grammars/batchfile.cson ./syntaxes/batchfile.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "bat", - "extensions": [ ".bat", ".cmd"], - "aliases": [ "Batch", "bat" ], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "bat", - "scopeName": "source.batchfile", - "path": "./syntaxes/batchfile.tmLanguage.json" - }], - "snippets": [{ - "language": "bat", - "path": "./snippets/batchfile.code-snippets" - }] - } -} diff --git a/extensions/bat/package.nls.json b/extensions/bat/package.nls.json deleted file mode 100644 index c5052ca0214..00000000000 --- a/extensions/bat/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Windows Bat Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in Windows batch files." -} \ No newline at end of file diff --git a/extensions/bat/snippets/batchfile.code-snippets b/extensions/bat/snippets/batchfile.code-snippets deleted file mode 100644 index 3759e25eacd..00000000000 --- a/extensions/bat/snippets/batchfile.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "::#region" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "::#endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/bat/syntaxes/batchfile.tmLanguage.json b/extensions/bat/syntaxes/batchfile.tmLanguage.json deleted file mode 100644 index 9eff3c9de2b..00000000000 --- a/extensions/bat/syntaxes/batchfile.tmLanguage.json +++ /dev/null @@ -1,738 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/mmims/language-batchfile/blob/master/grammars/batchfile.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/mmims/language-batchfile/commit/95ea8c699f7a8296b15767069868532d52631c46", - "name": "Batch File", - "scopeName": "source.batchfile", - "patterns": [ - { - "include": "#commands" - }, - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#controls" - }, - { - "include": "#escaped_characters" - }, - { - "include": "#labels" - }, - { - "include": "#numbers" - }, - { - "include": "#operators" - }, - { - "include": "#parens" - }, - { - "include": "#strings" - }, - { - "include": "#variables" - } - ], - "repository": { - "commands": { - "patterns": [ - { - "match": "(?<=^|[\\s@])(?i:adprep|append|arp|assoc|at|atmadm|attrib|auditpol|autochk|autoconv|autofmt|bcdboot|bcdedit|bdehdcfg|bitsadmin|bootcfg|brea|cacls|cd|certreq|certutil|change|chcp|chdir|chglogon|chgport|chgusr|chkdsk|chkntfs|choice|cipher|clip|cls|clscluadmin|cluster|cmd|cmdkey|cmstp|color|comp|compact|convert|copy|cprofile|cscript|csvde|date|dcdiag|dcgpofix|dcpromo|defra|del|dfscmd|dfsdiag|dfsrmig|diantz|dir|dirquota|diskcomp|diskcopy|diskpart|diskperf|diskraid|diskshadow|dispdiag|doin|dnscmd|doskey|driverquery|dsacls|dsadd|dsamain|dsdbutil|dsget|dsmgmt|dsmod|dsmove|dsquery|dsrm|edit|endlocal|eraseesentutl|eventcreate|eventquery|eventtriggers|evntcmd|expand|extract|fc|filescrn|find|findstr|finger|flattemp|fonde|forfiles|format|freedisk|fsutil|ftp|ftype|fveupdate|getmac|gettype|gpfixup|gpresult|gpupdate|graftabl|hashgen|hep|helpctr|hostname|icacls|iisreset|inuse|ipconfig|ipxroute|irftp|ismserv|jetpack|klist|ksetup|ktmutil|ktpass|label|ldifd|ldp|lodctr|logman|logoff|lpq|lpr|macfile|makecab|manage-bde|mapadmin|md|mkdir|mklink|mmc|mode|more|mount|mountvol|move|mqbup|mqsvc|mqtgsvc|msdt|msg|msiexec|msinfo32|mstsc|nbtstat|net computer|net group|net localgroup|net print|net session|net share|net start|net stop|net use|net user|net view|net|netcfg|netdiag|netdom|netsh|netstat|nfsadmin|nfsshare|nfsstat|nlb|nlbmgr|nltest|nslookup|ntackup|ntcmdprompt|ntdsutil|ntfrsutl|openfiles|pagefileconfig|path|pathping|pause|pbadmin|pentnt|perfmon|ping|pnpunatten|pnputil|popd|powercfg|powershell|powershell_ise|print|prncnfg|prndrvr|prnjobs|prnmngr|prnport|prnqctl|prompt|pubprn|pushd|pushprinterconnections|pwlauncher|qappsrv|qprocess|query|quser|qwinsta|rasdial|rcp|rd|rdpsign|regentc|recover|redircmp|redirusr|reg|regini|regsvr32|relog|ren|rename|rendom|repadmin|repair-bde|replace|reset session|rxec|risetup|rmdir|robocopy|route|rpcinfo|rpcping|rsh|runas|rundll32|rwinsta|scp|sc|schtasks|scwcmd|secedit|serverceipoptin|servrmanagercmd|serverweroptin|setspn|setx|sfc|shadow|shift|showmount|shutdown|sort|ssh|start|storrept|subst|sxstrace|ysocmgr|systeminfo|takeown|tapicfg|taskkill|tasklist|tcmsetup|telnet|tftp|time|timeout|title|tlntadmn|tpmvscmgr|tpmvscmgr|tacerpt|tracert|tree|tscon|tsdiscon|tsecimp|tskill|tsprof|type|typeperf|tzutil|uddiconfig|umount|unlodctr|ver|verifier|verif|vol|vssadmin|w32tm|waitfor|wbadmin|wdsutil|wecutil|wevtutil|where|whoami|winnt|winnt32|winpop|winrm|winrs|winsat|wlbs|mic|wscript|xcopy)(?=$|\\s)", - "name": "keyword.command.batchfile" - }, - { - "begin": "(?i)(?<=^|[\\s@])(echo)(?:(?=$|\\.|:)|\\s+(?:(on|off)(?=\\s*$))?)", - "beginCaptures": { - "1": { - "name": "keyword.command.batchfile" - }, - "2": { - "name": "keyword.other.special-method.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - } - ] - }, - { - "match": "(?i)(?<=^|[\\s@])(setlocal)(?:\\s*$|\\s+(EnableExtensions|DisableExtensions|EnableDelayedExpansion|DisableDelayedExpansion)(?=\\s*$))", - "captures": { - "1": { - "name": "keyword.command.batchfile" - }, - "2": { - "name": "keyword.other.special-method.batchfile" - } - } - }, - { - "include": "#command_set" - } - ] - }, - "command_set": { - "patterns": [ - { - "begin": "(?<=^|[\\s@])(?i:SET)(?=$|\\s)", - "beginCaptures": { - "0": { - "name": "keyword.command.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#command_set_inside" - } - ] - } - ] - }, - "command_set_inside": { - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#parens" - }, - { - "include": "#command_set_strings" - }, - { - "include": "#strings" - }, - { - "begin": "([^ ][^=]*)(=)", - "beginCaptures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#parens" - }, - { - "include": "#strings" - } - ] - }, - { - "begin": "\\s+/[aA]\\s+", - "end": "(?=$\\n|[&|><)])", - "name": "meta.expression.set.batchfile", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.batchfile" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.batchfile" - } - }, - "name": "string.quoted.double.batchfile", - "patterns": [ - { - "include": "#command_set_inside_arithmetic" - }, - { - "include": "#command_set_group" - }, - { - "include": "#variables" - } - ] - }, - { - "include": "#command_set_inside_arithmetic" - }, - { - "include": "#command_set_group" - } - ] - }, - { - "begin": "\\s+/[pP]\\s+", - "end": "(?=$\\n|[&|><)])", - "patterns": [ - { - "include": "#command_set_strings" - }, - { - "begin": "([^ ][^=]*)(=)", - "beginCaptures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "name": "meta.prompt.set.batchfile", - "patterns": [ - { - "include": "#strings" - } - ] - } - ] - } - ] - }, - "command_set_group": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.group.begin.batchfile" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.batchfile" - } - }, - "patterns": [ - { - "include": "#command_set_inside_arithmetic" - } - ] - } - ] - }, - "command_set_inside_arithmetic": { - "patterns": [ - { - "include": "#command_set_operators" - }, - { - "include": "#numbers" - }, - { - "match": ",", - "name": "punctuation.separator.batchfile" - } - ] - }, - "command_set_operators": { - "patterns": [ - { - "match": "([^ ]*)(\\+\\=|\\-\\=|\\*\\=|\\/\\=|%%\\=|&\\=|\\|\\=|\\^\\=|<<\\=|>>\\=)", - "captures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.augmented.batchfile" - } - } - }, - { - "match": "\\+|\\-|/|\\*|%%|\\||&|\\^|<<|>>|~", - "name": "keyword.operator.arithmetic.batchfile" - }, - { - "match": "!", - "name": "keyword.operator.logical.batchfile" - }, - { - "match": "([^ ][^=]*)(=)", - "captures": { - "1": { - "name": "variable.other.readwrite.batchfile" - }, - "2": { - "name": "keyword.operator.assignment.batchfile" - } - } - } - ] - }, - "command_set_strings": { - "patterns": [ - { - "begin": "(\")\\s*([^ ][^=]*)(=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.batchfile" - }, - "2": { - "name": "variable.other.readwrite.batchfile" - }, - "3": { - "name": "keyword.operator.assignment.batchfile" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.batchfile" - } - }, - "name": "string.quoted.double.batchfile", - "patterns": [ - { - "include": "#variables" - }, - { - "include": "#numbers" - }, - { - "include": "#escaped_characters" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "(?:^|(&))\\s*(?=((?::[+=,;: ])))", - "beginCaptures": { - "1": { - "name": "keyword.operator.conditional.batchfile" - } - }, - "end": "\\n", - "patterns": [ - { - "begin": "((?::[+=,;: ]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.batchfile" - } - }, - "end": "(?=\\n)", - "name": "comment.line.colon.batchfile" - } - ] - }, - { - "begin": "(?<=^|[\\s@])(?i)(REM)(\\.)", - "beginCaptures": { - "1": { - "name": "keyword.command.rem.batchfile" - }, - "2": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=$\\n|[&|><)])", - "name": "comment.line.rem.batchfile" - }, - { - "begin": "(?<=^|[\\s@])(?i:rem)\\b", - "beginCaptures": { - "0": { - "name": "keyword.command.rem.batchfile" - } - }, - "end": "\\n", - "name": "comment.line.rem.batchfile", - "patterns": [ - { - "match": "[><|]", - "name": "invalid.illegal.unexpected-character.batchfile" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "match": "\\b(?i:NUL)\\b", - "name": "constant.language.batchfile" - } - ] - }, - "controls": { - "patterns": [ - { - "match": "(?i)(?<=^|\\s)(?:call|exit(?=$|\\s)|goto(?=$|\\s|:))", - "name": "keyword.control.statement.batchfile" - }, - { - "match": "(?<=^|\\s)(?i)(if)\\s+(?:(not)\\s+)?(exist|defined|errorlevel|cmdextversion)(?=\\s)", - "captures": { - "1": { - "name": "keyword.control.conditional.batchfile" - }, - "2": { - "name": "keyword.operator.logical.batchfile" - }, - "3": { - "name": "keyword.other.special-method.batchfile" - } - } - }, - { - "match": "(?<=^|\\s)(?i)(?:if|else)(?=$|\\s)", - "name": "keyword.control.conditional.batchfile" - }, - { - "match": "(?<=^|\\s)(?i)for(?=\\s)", - "name": "keyword.control.repeat.batchfile" - } - ] - }, - "escaped_characters": { - "patterns": [ - { - "match": "%%|\\^\\^!|\\^(?=.)|\\^\\n", - "name": "constant.character.escape.batchfile" - } - ] - }, - "labels": { - "patterns": [ - { - "match": "(?i)(?:^\\s*|(?<=goto)\\s*)(:)([^+=,;:\\s].*)$", - "captures": { - "1": { - "name": "punctuation.separator.batchfile" - }, - "2": { - "name": "keyword.other.special-method.batchfile" - } - } - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "(?<=^|\\s|=)(0[xX][0-9A-Fa-f]*|[+-]?\\d+)(?=$|\\s|<|>)", - "name": "constant.numeric.batchfile" - } - ] - }, - "operators": { - "patterns": [ - { - "match": "@(?=\\S)", - "name": "keyword.operator.at.batchfile" - }, - { - "match": "(?<=\\s)(?i:EQU|NEQ|LSS|LEQ|GTR|GEQ)(?=\\s)|==", - "name": "keyword.operator.comparison.batchfile" - }, - { - "match": "(?<=\\s)(?i)(NOT)(?=\\s)", - "name": "keyword.operator.logical.batchfile" - }, - { - "match": "(?[&>]?", - "name": "keyword.operator.redirection.batchfile" - } - ] - }, - "parens": { - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.group.begin.batchfile" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.batchfile" - } - }, - "name": "meta.group.batchfile", - "patterns": [ - { - "match": ",|;", - "name": "punctuation.separator.batchfile" - }, - { - "include": "$self" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.batchfile" - } - }, - "end": "(\")|(\\n)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.batchfile" - }, - "2": { - "name": "invalid.illegal.newline.batchfile" - } - }, - "name": "string.quoted.double.batchfile", - "patterns": [ - { - "match": "%%", - "name": "constant.character.escape.batchfile" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "variables": { - "patterns": [ - { - "match": "(%)((~([fdpnxsatz]|\\$PATH:)*)?\\d|\\*)", - "captures": { - "1": { - "name": "punctuation.definition.variable.batchfile" - }, - "2": { - "name": "variable.parameter.batchfile" - } - } - }, - { - "include": "#variable" - }, - { - "include": "#variable_delayed_expansion" - } - ] - }, - "variable": { - "patterns": [ - { - "begin": "%(?=[^%]+%)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.begin.batchfile" - } - }, - "end": "(%)|\\n", - "endCaptures": { - "1": { - "name": "punctuation.definition.variable.end.batchfile" - } - }, - "name": "variable.other.readwrite.batchfile", - "patterns": [ - { - "begin": ":~", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=%|\\n)", - "name": "meta.variable.substring.batchfile", - "patterns": [ - { - "include": "#variable_substring" - } - ] - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=%|\\n)", - "name": "meta.variable.substitution.batchfile", - "patterns": [ - { - "include": "#variable_replace" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=%|\\n)", - "patterns": [ - { - "include": "#variable_delayed_expansion" - }, - { - "match": "[^%]+", - "name": "string.unquoted.batchfile" - } - ] - } - ] - } - ] - } - ] - }, - "variable_delayed_expansion": { - "patterns": [ - { - "begin": "!(?=[^!]+!)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.begin.batchfile" - } - }, - "end": "(!)|\\n", - "endCaptures": { - "1": { - "name": "punctuation.definition.variable.end.batchfile" - } - }, - "name": "variable.other.readwrite.batchfile", - "patterns": [ - { - "begin": ":~", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=!|\\n)", - "name": "meta.variable.substring.batchfile", - "patterns": [ - { - "include": "#variable_substring" - } - ] - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=!|\\n)", - "name": "meta.variable.substitution.batchfile", - "patterns": [ - { - "include": "#escaped_characters" - }, - { - "include": "#variable_replace" - }, - { - "include": "#variable" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.batchfile" - } - }, - "end": "(?=!|\\n)", - "patterns": [ - { - "include": "#variable" - }, - { - "match": "[^!]+", - "name": "string.unquoted.batchfile" - } - ] - } - ] - } - ] - } - ] - }, - "variable_replace": { - "patterns": [ - { - "match": "[^=%!\\n]+", - "name": "string.unquoted.batchfile" - } - ] - }, - "variable_substring": { - "patterns": [ - { - "match": "([+-]?\\d+)(?:(,)([+-]?\\d+))?", - "captures": { - "1": { - "name": "constant.numeric.batchfile" - }, - "2": { - "name": "punctuation.separator.batchfile" - }, - "3": { - "name": "constant.numeric.batchfile" - } - } - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/bat/test/colorize-fixtures/test.bat b/extensions/bat/test/colorize-fixtures/test.bat deleted file mode 100644 index 3e215fc5efc..00000000000 --- a/extensions/bat/test/colorize-fixtures/test.bat +++ /dev/null @@ -1,24 +0,0 @@ -@echo off -setlocal - -title VSCode Dev - -pushd %~dp0\.. - -:: Node modules -if not exist node_modules call .\scripts\npm.bat install - -:: Get electron -node .\node_modules\gulp\bin\gulp.js electron - -:: Build -if not exist out node .\node_modules\gulp\bin\gulp.js compile - -:: Configuration -set NODE_ENV=development - -call echo %%LINE:rem +=%% - -popd - -endlocal \ No newline at end of file diff --git a/extensions/bat/test/colorize-results/test_bat.json b/extensions/bat/test/colorize-results/test_bat.json deleted file mode 100644 index eb76b0e1d04..00000000000 --- a/extensions/bat/test/colorize-results/test_bat.json +++ /dev/null @@ -1,541 +0,0 @@ -[ - { - "c": "@", - "t": "source.batchfile keyword.operator.at.batchfile", - "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" - } - }, - { - "c": "echo", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "off", - "t": "source.batchfile keyword.other.special-method.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "setlocal", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "title", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " VSCode Dev", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "pushd", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "%", - "t": "source.batchfile punctuation.definition.variable.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "~dp0", - "t": "source.batchfile variable.parameter.batchfile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\\..", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::", - "t": "source.batchfile comment.line.colon.batchfile punctuation.definition.comment.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Node modules", - "t": "source.batchfile comment.line.colon.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "if", - "t": "source.batchfile keyword.control.conditional.batchfile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "not", - "t": "source.batchfile keyword.operator.logical.batchfile", - "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" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "exist", - "t": "source.batchfile keyword.other.special-method.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " node_modules ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "call", - "t": "source.batchfile keyword.control.statement.batchfile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " .\\scripts\\npm.bat install", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::", - "t": "source.batchfile comment.line.colon.batchfile punctuation.definition.comment.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Get electron", - "t": "source.batchfile comment.line.colon.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "node .\\node_modules\\gulp\\bin\\gulp.js electron", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::", - "t": "source.batchfile comment.line.colon.batchfile punctuation.definition.comment.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Build", - "t": "source.batchfile comment.line.colon.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "if", - "t": "source.batchfile keyword.control.conditional.batchfile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "not", - "t": "source.batchfile keyword.operator.logical.batchfile", - "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" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "exist", - "t": "source.batchfile keyword.other.special-method.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " out node .\\node_modules\\gulp\\bin\\gulp.js compile", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::", - "t": "source.batchfile comment.line.colon.batchfile punctuation.definition.comment.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Configuration", - "t": "source.batchfile comment.line.colon.batchfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "set", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NODE_ENV", - "t": "source.batchfile variable.other.readwrite.batchfile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.batchfile keyword.operator.assignment.batchfile", - "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" - } - }, - { - "c": "development", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "call", - "t": "source.batchfile keyword.control.statement.batchfile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "echo", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "%%", - "t": "source.batchfile constant.character.escape.batchfile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "LINE:rem +=", - "t": "source.batchfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "%%", - "t": "source.batchfile constant.character.escape.batchfile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "popd", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "endlocal", - "t": "source.batchfile keyword.command.batchfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - } -] \ No newline at end of file diff --git a/extensions/clojure/.vscodeignore b/extensions/clojure/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/clojure/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/clojure/cgmanifest.json b/extensions/clojure/cgmanifest.json deleted file mode 100644 index 3a72fefb369..00000000000 --- a/extensions/clojure/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "atom/language-clojure", - "repositoryUrl": "https://github.com/atom/language-clojure", - "commitHash": "de877502aa4a77ccdc2c7f0c9180436aea3effff" - } - }, - "license": "MIT", - "version": "0.22.7", - "description": "The file syntaxes/clojure.tmLanguage.json was derived from the Atom package https://github.com/atom/language-clojure which was originally converted from the TextMate bundle https://github.com/mmcgrana/textmate-clojure." - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/clojure/language-configuration.json b/extensions/clojure/language-configuration.json deleted file mode 100644 index a62cb968ece..00000000000 --- a/extensions/clojure/language-configuration.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "comments": { - "lineComment": ";" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""] - ], - "folding": { - "offSide": true - } -} diff --git a/extensions/clojure/package.json b/extensions/clojure/package.json deleted file mode 100644 index 3342784348b..00000000000 --- a/extensions/clojure/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "clojure", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js atom/language-clojure grammars/clojure.cson ./syntaxes/clojure.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "clojure", - "aliases": ["Clojure", "clojure"], - "extensions": [".clj", ".cljs", ".cljc", ".cljx", ".clojure", ".edn"], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "clojure", - "scopeName": "source.clojure", - "path": "./syntaxes/clojure.tmLanguage.json" - }] - } -} \ No newline at end of file diff --git a/extensions/clojure/package.nls.json b/extensions/clojure/package.nls.json deleted file mode 100644 index 30bff28016a..00000000000 --- a/extensions/clojure/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Clojure Language Basics", - "description": "Provides syntax highlighting and bracket matching in Clojure files." -} \ No newline at end of file diff --git a/extensions/clojure/syntaxes/clojure.tmLanguage.json b/extensions/clojure/syntaxes/clojure.tmLanguage.json deleted file mode 100644 index 29c25edfa24..00000000000 --- a/extensions/clojure/syntaxes/clojure.tmLanguage.json +++ /dev/null @@ -1,435 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-clojure/blob/master/grammars/clojure.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-clojure/commit/de877502aa4a77ccdc2c7f0c9180436aea3effff", - "name": "Clojure", - "scopeName": "source.clojure", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#shebang-comment" - }, - { - "include": "#quoted-sexp" - }, - { - "include": "#sexp" - }, - { - "include": "#keyfn" - }, - { - "include": "#string" - }, - { - "include": "#vector" - }, - { - "include": "#set" - }, - { - "include": "#map" - }, - { - "include": "#regexp" - }, - { - "include": "#var" - }, - { - "include": "#constants" - }, - { - "include": "#dynamic-variables" - }, - { - "include": "#metadata" - }, - { - "include": "#namespace-symbol" - }, - { - "include": "#symbol" - } - ], - "repository": { - "comment": { - "begin": "(?\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}|\\,))", - "name": "constant.keyword.clojure" - }, - "keyfn": { - "patterns": [ - { - "match": "(?<=(\\s|\\(|\\[|\\{))(if(-[-\\p{Ll}\\?]*)?|when(-[-\\p{Ll}]*)?|for(-[-\\p{Ll}]*)?|cond|do|let(-[-\\p{Ll}\\?]*)?|binding|loop|recur|fn|throw[\\p{Ll}\\-]*|try|catch|finally|([\\p{Ll}]*case))(?=(\\s|\\)|\\]|\\}))", - "name": "storage.control.clojure" - }, - { - "match": "(?<=(\\s|\\(|\\[|\\{))(declare-?|(in-)?ns|import|use|require|load|compile|(def[\\p{Ll}\\-]*))(?=(\\s|\\)|\\]|\\}))", - "name": "keyword.control.clojure" - } - ] - }, - "dynamic-variables": { - "match": "\\*[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\d]+\\*", - "name": "meta.symbol.dynamic.clojure" - }, - "map": { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.map.begin.clojure" - } - }, - "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.map.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.map.end.clojure" - } - }, - "name": "meta.map.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - "metadata": { - "patterns": [ - { - "begin": "(\\^\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.metadata.map.begin.clojure" - } - }, - "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.metadata.map.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.metadata.map.end.clojure" - } - }, - "name": "meta.metadata.map.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(\\^)", - "end": "(\\s)", - "name": "meta.metadata.simple.clojure", - "patterns": [ - { - "include": "#keyword" - }, - { - "include": "$self" - } - ] - } - ] - }, - "quoted-sexp": { - "begin": "(['``]\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.expression.begin.clojure" - } - }, - "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "3": { - "name": "punctuation.section.expression.end.clojure" - } - }, - "name": "meta.quoted-expression.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - "regexp": { - "begin": "#\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.regexp.begin.clojure" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.regexp.end.clojure" - } - }, - "name": "string.regexp.clojure", - "patterns": [ - { - "include": "#regexp_escaped_char" - } - ] - }, - "regexp_escaped_char": { - "match": "\\\\.", - "name": "constant.character.escape.clojure" - }, - "set": { - "begin": "(\\#\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.set.begin.clojure" - } - }, - "end": "(\\}(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.set.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.set.end.clojure" - } - }, - "name": "meta.set.clojure", - "patterns": [ - { - "include": "$self" - } - ] - }, - "sexp": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.expression.begin.clojure" - } - }, - "end": "(\\))$|(\\)(?=[\\}\\]\\)\\s]*(?:;|$)))|(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.expression.end.trailing.clojure" - }, - "3": { - "name": "punctuation.section.expression.end.clojure" - } - }, - "name": "meta.expression.clojure", - "patterns": [ - { - "begin": "(?<=\\()(ns|declare|def[\\w\\d._:+=>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", - "name": "entity.global.clojure" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#keyfn" - }, - { - "include": "#constants" - }, - { - "include": "#vector" - }, - { - "include": "#map" - }, - { - "include": "#set" - }, - { - "include": "#sexp" - }, - { - "match": "(?<=\\()(.+?)(?=\\s|\\))", - "captures": { - "1": { - "name": "entity.name.function.clojure" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - }, - "shebang-comment": { - "begin": "^(#!)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.shebang.clojure" - } - }, - "end": "$", - "name": "comment.line.shebang.clojure" - }, - "string": { - "begin": "(?\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)/", - "captures": { - "1": { - "name": "meta.symbol.namespace.clojure" - } - } - } - ] - }, - "symbol": { - "patterns": [ - { - "match": "([\\p{L}\\.\\-\\_\\+\\=\\>\\<\\!\\?\\*][\\w\\.\\-\\_\\:\\+\\=\\>\\<\\!\\?\\*\\d]*)", - "name": "meta.symbol.clojure" - } - ] - }, - "var": { - "match": "(?<=(\\s|\\(|\\[|\\{)\\#)'[\\w\\.\\-\\_\\:\\+\\=\\>\\<\\/\\!\\?\\*]+(?=(\\s|\\)|\\]|\\}))", - "name": "meta.var.clojure" - }, - "vector": { - "begin": "(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.section.vector.begin.clojure" - } - }, - "end": "(\\](?=[\\}\\]\\)\\s]*(?:;|$)))|(\\])", - "endCaptures": { - "1": { - "name": "punctuation.section.vector.end.trailing.clojure" - }, - "2": { - "name": "punctuation.section.vector.end.clojure" - } - }, - "name": "meta.vector.clojure", - "patterns": [ - { - "include": "$self" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/clojure/test/colorize-fixtures/test.clj b/extensions/clojure/test/colorize-fixtures/test.clj deleted file mode 100644 index 4abe930a2cb..00000000000 --- a/extensions/clojure/test/colorize-fixtures/test.clj +++ /dev/null @@ -1,52 +0,0 @@ -;; from http://clojure-doc.org/articles/tutorials/introduction.html - -(require '[clojure.string :as str]) -(def the-answer 42) -[1 2 3] ; A vector -[1 :two "three"] -{:a 1 :b 2} -#{:a :b :c} -'(1 2 3) -(def my-stuff ["shirt" "coat" "hat"]) ; this is more typical usage. - -(my-func (my-func2 arg1 - arg2) - (other-func arg-a - (foo-bar arg-x - arg-y - (+ arg-xx - arg-yy - arg-zz)) - arg-b)) -'(+ 1 2 3) -;; ⇒ (+ 1 2 3) -(let [width 10 - height 20 - thickness 2] - (println "hello from inside the `let`.") - (* width - height - thickness)) - -;; Vectors -(def v [:a :b :c]) -(def li '(:a :b :c)) -(conj v :d) ; ⇒ [:a :b :c :d] -(conj li :d) ; ⇒ (:d :a :b :c) - -v ; ⇒ is still [:a :b :c] -li ; ⇒ is still (:a :b :c) - -;; Maps -(def m {:a 1 :b 2}) -(assoc m :c 3) ; ⇒ {:a 1 :c 3 :b 2} -(dissoc m :b) ; ⇒ {:a 1} - -(def my-atom (atom {:foo 1})) -;; ⇒ #'user/my-atom -@my-atom -;; ⇒ {:foo 1} -(swap! my-atom update-in [:foo] inc) -;; ⇒ {:foo 2} -@my-atom -;; ⇒ {:foo 2} \ No newline at end of file diff --git a/extensions/clojure/test/colorize-results/test_clj.json b/extensions/clojure/test/colorize-results/test_clj.json deleted file mode 100644 index 64b91983a10..00000000000 --- a/extensions/clojure/test/colorize-results/test_clj.json +++ /dev/null @@ -1,3324 +0,0 @@ -[ - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; from http://clojure-doc.org/articles/tutorials/introduction.html", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "require", - "t": "source.clojure meta.expression.clojure keyword.control.clojure", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " '", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.clojure meta.expression.clojure meta.vector.clojure punctuation.section.vector.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "clojure.string", - "t": "source.clojure meta.expression.clojure meta.vector.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":as", - "t": "source.clojure meta.expression.clojure meta.vector.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "str", - "t": "source.clojure meta.expression.clojure meta.vector.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.clojure meta.expression.clojure meta.vector.clojure punctuation.section.vector.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure keyword.control.clojure", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "the-answer", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure entity.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "42", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.clojure meta.vector.clojure punctuation.section.vector.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.clojure meta.vector.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.clojure meta.vector.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.clojure meta.vector.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": "]", - "t": "source.clojure meta.vector.clojure punctuation.section.vector.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " A vector", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "[", - "t": "source.clojure meta.vector.clojure punctuation.section.vector.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.clojure meta.vector.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":two", - "t": "source.clojure meta.vector.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.begin.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "three", - "t": "source.clojure meta.vector.clojure string.quoted.double.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.end.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.clojure meta.vector.clojure punctuation.section.vector.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.clojure meta.map.clojure punctuation.section.map.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":a", - "t": "source.clojure meta.map.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.map.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.clojure meta.map.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.map.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":b", - "t": "source.clojure meta.map.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.map.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.clojure meta.map.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": "}", - "t": "source.clojure meta.map.clojure punctuation.section.map.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.clojure meta.set.clojure punctuation.section.set.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":a", - "t": "source.clojure meta.set.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.set.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":b", - "t": "source.clojure meta.set.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.set.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":c", - "t": "source.clojure meta.set.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.clojure meta.set.clojure punctuation.section.set.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'(", - "t": "source.clojure meta.quoted-expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.clojure meta.quoted-expression.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.quoted-expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.clojure meta.quoted-expression.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.quoted-expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.clojure meta.quoted-expression.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": ")", - "t": "source.clojure meta.quoted-expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure keyword.control.clojure", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my-stuff", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure entity.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure punctuation.section.vector.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.begin.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "shirt", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.end.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.begin.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "coat", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.end.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.begin.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "hat", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure string.quoted.double.clojure punctuation.definition.string.end.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure punctuation.section.vector.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " this is more typical usage.", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my-func", - "t": "source.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my-func2", - "t": "source.clojure meta.expression.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg1", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg2", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "other-func", - "t": "source.clojure meta.expression.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg-a", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo-bar", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg-x", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg-y", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg-xx", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg-yy", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg-zz", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "arg-b", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'(", - "t": "source.clojure meta.quoted-expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.clojure meta.quoted-expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.quoted-expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.clojure meta.quoted-expression.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.quoted-expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.clojure meta.quoted-expression.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.quoted-expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.clojure meta.quoted-expression.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": ")", - "t": "source.clojure meta.quoted-expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; ⇒ (+ 1 2 3)", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.clojure meta.expression.clojure storage.control.clojure", - "r": { - "dark_plus": "storage: #569CD6", - "light_plus": "storage: #0000FF", - "dark_vs": "storage: #569CD6", - "light_vs": "storage: #0000FF", - "hc_black": "storage: #569CD6" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.clojure meta.expression.clojure meta.vector.clojure punctuation.section.vector.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.clojure meta.expression.clojure meta.vector.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10", - "t": "source.clojure meta.expression.clojure meta.vector.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "height", - "t": "source.clojure meta.expression.clojure meta.vector.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "20", - "t": "source.clojure meta.expression.clojure meta.vector.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "thickness", - "t": "source.clojure meta.expression.clojure meta.vector.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.clojure meta.expression.clojure meta.vector.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": "]", - "t": "source.clojure meta.expression.clojure meta.vector.clojure punctuation.section.vector.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.clojure meta.expression.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.expression.clojure string.quoted.double.clojure punctuation.definition.string.begin.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "hello from inside the `let`.", - "t": "source.clojure meta.expression.clojure meta.expression.clojure string.quoted.double.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.clojure meta.expression.clojure meta.expression.clojure string.quoted.double.clojure punctuation.definition.string.end.clojure", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.clojure meta.expression.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "height", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "thickness", - "t": "source.clojure meta.expression.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; Vectors", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure keyword.control.clojure", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "v", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure entity.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure punctuation.section.vector.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":a", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":b", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":c", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.vector.clojure punctuation.section.vector.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure keyword.control.clojure", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "li", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure entity.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'(", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.quoted-expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":a", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.quoted-expression.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.quoted-expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":b", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.quoted-expression.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.quoted-expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":c", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.quoted-expression.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.quoted-expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "conj", - "t": "source.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "v", - "t": "source.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":d", - "t": "source.clojure meta.expression.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ⇒ [:a :b :c :d]", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "conj", - "t": "source.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "li", - "t": "source.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":d", - "t": "source.clojure meta.expression.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ⇒ (:d :a :b :c)", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "v", - "t": "source.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ⇒ is still [:a :b :c]", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "li", - "t": "source.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ⇒ is still (:a :b :c)", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; Maps", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure keyword.control.clojure", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "m", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure entity.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure punctuation.section.map.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":a", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":b", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": "}", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.map.clojure punctuation.section.map.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "assoc", - "t": "source.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "m", - "t": "source.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":c", - "t": "source.clojure meta.expression.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.clojure meta.expression.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ⇒ {:a 1 :c 3 :b 2}", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "dissoc", - "t": "source.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "m", - "t": "source.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":b", - "t": "source.clojure meta.expression.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ⇒ {:a 1}", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure keyword.control.clojure", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my-atom", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure entity.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "atom", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure meta.map.clojure punctuation.section.map.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":foo", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure meta.map.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure meta.map.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure meta.map.clojure constant.numeric.long.clojure", - "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" - } - }, - { - "c": "}", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure meta.map.clojure punctuation.section.map.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure meta.definition.global.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; ⇒ #'user/my-atom", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my-atom", - "t": "source.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; ⇒ {:foo 1}", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "(", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "swap!", - "t": "source.clojure meta.expression.clojure entity.name.function.clojure", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my-atom", - "t": "source.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "update-in", - "t": "source.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.clojure meta.expression.clojure meta.vector.clojure punctuation.section.vector.begin.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":foo", - "t": "source.clojure meta.expression.clojure meta.vector.clojure constant.keyword.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.clojure meta.expression.clojure meta.vector.clojure punctuation.section.vector.end.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.clojure meta.expression.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "inc", - "t": "source.clojure meta.expression.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.clojure meta.expression.clojure punctuation.section.expression.end.trailing.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; ⇒ {:foo 2}", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my-atom", - "t": "source.clojure meta.symbol.clojure", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.clojure comment.line.semicolon.clojure punctuation.definition.comment.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "; ⇒ {:foo 2}", - "t": "source.clojure comment.line.semicolon.clojure", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - } -] diff --git a/extensions/coffeescript/.vscodeignore b/extensions/coffeescript/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/coffeescript/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/coffeescript/cgmanifest.json b/extensions/coffeescript/cgmanifest.json deleted file mode 100644 index 3c792173e6e..00000000000 --- a/extensions/coffeescript/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "atom/language-coffee-script", - "repositoryUrl": "https://github.com/atom/language-coffee-script", - "commitHash": "0f6db9143663e18b1ad00667820f46747dba495e" - } - }, - "license": "MIT", - "description": "The file syntaxes/coffeescript.tmLanguage.json was derived from the Atom package https://github.com/atom/language-coffee-script which was originally converted from the TextMate bundle https://github.com/jashkenas/coffee-script-tmbundle.", - "version": "0.49.3" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/coffeescript/language-configuration.json b/extensions/coffeescript/language-configuration.json deleted file mode 100644 index c2b8662039d..00000000000 --- a/extensions/coffeescript/language-configuration.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "comments": { - "lineComment": "#", - "blockComment": [ "###", "###" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - [" ", " "] - ], - "folding": { - "offSide": true, - "markers": { - "start": "^\\s*#region\\b", - "end": "^\\s*#endregion\\b" - } - } -} diff --git a/extensions/coffeescript/package.json b/extensions/coffeescript/package.json deleted file mode 100644 index 9bc96cca5d8..00000000000 --- a/extensions/coffeescript/package.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "name": "coffeescript", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js atom/language-coffee-script grammars/coffeescript.cson ./syntaxes/coffeescript.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "coffeescript", - "extensions": [ ".coffee", ".cson", ".iced" ], - "aliases": [ "CoffeeScript", "coffeescript", "coffee" ], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "coffeescript", - "scopeName": "source.coffee", - "path": "./syntaxes/coffeescript.tmLanguage.json" - }], - "breakpoints": [ - { - "language": "coffeescript" - } - ], - "snippets": [{ - "language": "coffeescript", - "path": "./snippets/coffeescript.code-snippets" - }] - } -} diff --git a/extensions/coffeescript/package.nls.json b/extensions/coffeescript/package.nls.json deleted file mode 100644 index 6cc7751873b..00000000000 --- a/extensions/coffeescript/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "CoffeeScript Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in CoffeeScript files." -} diff --git a/extensions/coffeescript/snippets/coffeescript.code-snippets b/extensions/coffeescript/snippets/coffeescript.code-snippets deleted file mode 100644 index 49d6a927993..00000000000 --- a/extensions/coffeescript/snippets/coffeescript.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "#region" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "#endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json b/extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json deleted file mode 100644 index 708856898bc..00000000000 --- a/extensions/coffeescript/syntaxes/coffeescript.tmLanguage.json +++ /dev/null @@ -1,1316 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-coffee-script/blob/master/grammars/coffeescript.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-coffee-script/commit/0f6db9143663e18b1ad00667820f46747dba495e", - "name": "CoffeeScript", - "scopeName": "source.coffee", - "patterns": [ - { - "include": "#jsx" - }, - { - "match": "(new)\\s+(?:(?:(class)\\s+(\\w+(?:\\.\\w*)*)?)|(\\w+(?:\\.\\w*)*))", - "name": "meta.class.instance.constructor.coffee", - "captures": { - "1": { - "name": "keyword.operator.new.coffee" - }, - "2": { - "name": "storage.type.class.coffee" - }, - "3": { - "name": "entity.name.type.instance.coffee" - }, - "4": { - "name": "entity.name.type.instance.coffee" - } - } - }, - { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.coffee" - } - }, - "end": "'''", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.coffee" - } - }, - "name": "string.quoted.single.heredoc.coffee", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.escape.backslash.coffee" - } - }, - "match": "(\\\\).", - "name": "constant.character.escape.backslash.coffee" - } - ] - }, - { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.coffee" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.coffee" - } - }, - "name": "string.quoted.double.heredoc.coffee", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.escape.backslash.coffee" - } - }, - "match": "(\\\\).", - "name": "constant.character.escape.backslash.coffee" - }, - { - "include": "#interpolated_coffee" - } - ] - }, - { - "match": "(`)(.*)(`)", - "name": "string.quoted.script.coffee", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.coffee" - }, - "2": { - "name": "source.js.embedded.coffee", - "patterns": [ - { - "include": "source.js" - } - ] - }, - "3": { - "name": "punctuation.definition.string.end.coffee" - } - } - }, - { - "begin": "(?)", - "beginCaptures": { - "1": { - "name": "entity.name.function.coffee" - }, - "2": { - "name": "variable.other.readwrite.instance.coffee" - }, - "3": { - "name": "keyword.operator.assignment.coffee" - } - }, - "end": "[=-]>", - "endCaptures": { - "0": { - "name": "storage.type.function.coffee" - } - }, - "name": "meta.function.coffee", - "patterns": [ - { - "include": "#function_params" - } - ] - }, - { - "begin": "(?x)\n(?<=\\s|^)(?:((')([^']*?)('))|((\")([^\"]*?)(\")))\n\\s*([:=])\\s*\n(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", - "beginCaptures": { - "1": { - "name": "string.quoted.single.coffee" - }, - "2": { - "name": "punctuation.definition.string.begin.coffee" - }, - "3": { - "name": "entity.name.function.coffee" - }, - "4": { - "name": "punctuation.definition.string.end.coffee" - }, - "5": { - "name": "string.quoted.double.coffee" - }, - "6": { - "name": "punctuation.definition.string.begin.coffee" - }, - "7": { - "name": "entity.name.function.coffee" - }, - "8": { - "name": "punctuation.definition.string.end.coffee" - }, - "9": { - "name": "keyword.operator.assignment.coffee" - } - }, - "end": "[=-]>", - "endCaptures": { - "0": { - "name": "storage.type.function.coffee" - } - }, - "name": "meta.function.coffee", - "patterns": [ - { - "include": "#function_params" - } - ] - }, - { - "begin": "(?=(\\([^\\(\\)]*\\)\\s*)?[=-]>)", - "end": "[=-]>", - "endCaptures": { - "0": { - "name": "storage.type.function.coffee" - } - }, - "name": "meta.function.inline.coffee", - "patterns": [ - { - "include": "#function_params" - } - ] - }, - { - "begin": "(?<=\\s|^)({)(?=[^'\"#]+?}[\\s\\]}]*=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.destructuring.begin.bracket.curly.coffee" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.destructuring.end.bracket.curly.coffee" - } - }, - "name": "meta.variable.assignment.destructured.object.coffee", - "patterns": [ - { - "include": "$self" - }, - { - "match": "[a-zA-Z$_]\\w*", - "name": "variable.assignment.coffee" - } - ] - }, - { - "begin": "(?<=\\s|^)(\\[)(?=[^'\"#]+?\\][\\s\\]}]*=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.destructuring.begin.bracket.square.coffee" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.destructuring.end.bracket.square.coffee" - } - }, - "name": "meta.variable.assignment.destructured.array.coffee", - "patterns": [ - { - "include": "$self" - }, - { - "match": "[a-zA-Z$_]\\w*", - "name": "variable.assignment.coffee" - } - ] - }, - { - "match": "\\b(?|\\-\\d|\\[|{|\"|'))", - "end": "(?=\\s*(?|\\-\\d|\\[|{|\"|')))", - "beginCaptures": { - "1": { - "name": "variable.other.readwrite.instance.coffee" - }, - "2": { - "patterns": [ - { - "include": "#function_names" - } - ] - } - }, - "end": "(?=\\s*(?|\\-\\d|\\[|{|\"|')))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.method.period.coffee" - }, - "2": { - "name": "keyword.operator.prototype.coffee" - }, - "3": { - "patterns": [ - { - "include": "#method_names" - } - ] - } - }, - "end": "(?=\\s*(?>=|>>>=|\\|=)", - "captures": { - "1": { - "name": "variable.assignment.coffee" - }, - "2": { - "name": "keyword.operator.assignment.compound.bitwise.coffee" - } - } - }, - { - "match": "<<|>>>|>>", - "name": "keyword.operator.bitwise.shift.coffee" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.coffee" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.coffee" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.bitwise.coffee" - }, - { - "match": "([a-zA-Z$_][\\w$]*)?\\s*(=|:(?!:))(?![>=])", - "captures": { - "1": { - "name": "variable.assignment.coffee" - }, - "2": { - "name": "keyword.operator.assignment.coffee" - } - } - }, - { - "match": "--", - "name": "keyword.operator.decrement.coffee" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.coffee" - }, - { - "match": "\\.\\.\\.", - "name": "keyword.operator.splat.coffee" - }, - { - "match": "\\?", - "name": "keyword.operator.existential.coffee" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.coffee" - }, - { - "match": "(?x)\n\\b(?)", - "name": "meta.tag.coffee", - "patterns": [ - { - "include": "#jsx-attribute" - } - ] - } - ] - }, - "jsx-end-tag": { - "patterns": [ - { - "begin": "()", - "name": "meta.tag.coffee" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/coffeescript/test/colorize-fixtures/test-regex.coffee b/extensions/coffeescript/test/colorize-fixtures/test-regex.coffee deleted file mode 100644 index 121f78fddf4..00000000000 --- a/extensions/coffeescript/test/colorize-fixtures/test-regex.coffee +++ /dev/null @@ -1,15 +0,0 @@ -regex = /Hello (\d+) #{user}/g -2 / 3 -2/3 - -a = b/c + d/g -someOtherStuff - -name="hello" -test=/// #{name} - -fancyRegExp = /// - (\d+) # numbers - (\w*) # letters - $ # the end -/// \ No newline at end of file diff --git a/extensions/coffeescript/test/colorize-fixtures/test.coffee b/extensions/coffeescript/test/colorize-fixtures/test.coffee deleted file mode 100644 index f9ac126039d..00000000000 --- a/extensions/coffeescript/test/colorize-fixtures/test.coffee +++ /dev/null @@ -1,28 +0,0 @@ -""" -A CoffeeScript sample. -""" - -class Vehicle - constructor: (@name) => - - drive: () => - alert "Drive #{@name}" - -class Car extends Vehicle - drive: () => - alert "Driving #{@name}" - -c = new Car "Volvo" - -while onTheRoad() - c.drive() - -vehicles = (new Car for i in [1..100]) - -startRace = (vehicles) -> [vehicle.drive() for vehicle in vehicles] - -fancyRegExp = /// - (\d+) # numbers - (\w*) # letters - $ # the end -/// diff --git a/extensions/coffeescript/test/colorize-results/test-regex_coffee.json b/extensions/coffeescript/test/colorize-results/test-regex_coffee.json deleted file mode 100644 index 15f4b3cd384..00000000000 --- a/extensions/coffeescript/test/colorize-results/test-regex_coffee.json +++ /dev/null @@ -1,728 +0,0 @@ -[ - { - "c": "regex", - "t": "source.coffee variable.assignment.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.coffee string.regexp.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "Hello ", - "t": "source.coffee string.regexp.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "(", - "t": "source.coffee string.regexp.coffee meta.group.regexp punctuation.definition.group.regexp", - "r": { - "dark_plus": "punctuation.definition.group.regexp: #CE9178", - "light_plus": "punctuation.definition.group.regexp: #D16969", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\d", - "t": "source.coffee string.regexp.coffee meta.group.regexp constant.character.character-class.regexp", - "r": { - "dark_plus": "constant.character.character-class.regexp: #D16969", - "light_plus": "constant.character.character-class.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "+", - "t": "source.coffee string.regexp.coffee meta.group.regexp keyword.operator.quantifier.regexp", - "r": { - "dark_plus": "keyword.operator.quantifier.regexp: #D7BA7D", - "light_plus": "keyword.operator.quantifier.regexp: #000000", - "dark_vs": "keyword.operator: #D4D4D4", - "light_vs": "keyword.operator: #000000", - "hc_black": "keyword.operator: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.coffee string.regexp.coffee meta.group.regexp punctuation.definition.group.regexp", - "r": { - "dark_plus": "punctuation.definition.group.regexp: #CE9178", - "light_plus": "punctuation.definition.group.regexp: #D16969", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": " #{user}", - "t": "source.coffee string.regexp.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "/", - "t": "source.coffee string.regexp.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "g", - "t": "source.coffee string.regexp.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "2", - "t": "source.coffee constant.numeric.decimal.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.coffee keyword.operator.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.coffee constant.numeric.decimal.coffee", - "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" - } - }, - { - "c": "2", - "t": "source.coffee constant.numeric.decimal.coffee", - "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" - } - }, - { - "c": "/", - "t": "source.coffee keyword.operator.coffee", - "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" - } - }, - { - "c": "3", - "t": "source.coffee constant.numeric.decimal.coffee", - "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" - } - }, - { - "c": "a", - "t": "source.coffee variable.assignment.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " b", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.coffee keyword.operator.coffee", - "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" - } - }, - { - "c": "c ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.coffee keyword.operator.coffee", - "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" - } - }, - { - "c": " d", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.coffee keyword.operator.coffee", - "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" - } - }, - { - "c": "g", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "someOtherStuff", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "source.coffee variable.assignment.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": "\"", - "t": "source.coffee string.quoted.double.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "hello", - "t": "source.coffee string.quoted.double.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.coffee string.quoted.double.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "test", - "t": "source.coffee variable.assignment.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": "///", - "t": "source.coffee string.regexp.multiline.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": " ", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "#{", - "t": "source.coffee string.regexp.multiline.coffee source.coffee.embedded.source punctuation.section.embedded.coffee", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "name", - "t": "source.coffee string.regexp.multiline.coffee source.coffee.embedded.source", - "r": { - "dark_plus": "source.coffee.embedded: #9CDCFE", - "light_plus": "source.coffee.embedded: #FF0000", - "dark_vs": "source.coffee.embedded: #9CDCFE", - "light_vs": "source.coffee.embedded: #FF0000", - "hc_black": "source.coffee.embedded: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.coffee string.regexp.multiline.coffee source.coffee.embedded.source punctuation.section.embedded.coffee", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "fancyRegExp = ", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "///", - "t": "source.coffee string.regexp.multiline.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\t", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.coffee meta.brace.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\\d", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.coffee keyword.operator.coffee", - "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" - } - }, - { - "c": ")", - "t": "source.coffee meta.brace.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.coffee comment.line.number-sign.coffee punctuation.definition.comment.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " numbers", - "t": "source.coffee comment.line.number-sign.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.coffee meta.brace.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\\w", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.coffee keyword.operator.coffee", - "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" - } - }, - { - "c": ")", - "t": "source.coffee meta.brace.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.coffee comment.line.number-sign.coffee punctuation.definition.comment.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " letters", - "t": "source.coffee comment.line.number-sign.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t$\t\t", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.coffee comment.line.number-sign.coffee punctuation.definition.comment.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " the end", - "t": "source.coffee comment.line.number-sign.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "///", - "t": "source.coffee string.regexp.multiline.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - } -] diff --git a/extensions/coffeescript/test/colorize-results/test_coffee.json b/extensions/coffeescript/test/colorize-results/test_coffee.json deleted file mode 100644 index 9647307f073..00000000000 --- a/extensions/coffeescript/test/colorize-results/test_coffee.json +++ /dev/null @@ -1,1608 +0,0 @@ -[ - { - "c": "\"\"\"", - "t": "source.coffee string.quoted.double.heredoc.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "A CoffeeScript sample.", - "t": "source.coffee string.quoted.double.heredoc.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"\"\"", - "t": "source.coffee string.quoted.double.heredoc.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "class", - "t": "source.coffee meta.class.coffee storage.type.class.coffee", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee meta.class.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Vehicle", - "t": "source.coffee meta.class.coffee entity.name.type.class.coffee", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "constructor", - "t": "source.coffee meta.function.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.coffee meta.function.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.begin.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@name", - "t": "source.coffee meta.function.coffee meta.parameters.coffee variable.parameter.function.readwrite.instance.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.end.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.coffee meta.function.coffee storage.type.function.coffee", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "drive", - "t": "source.coffee meta.function.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.coffee meta.function.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.begin.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.end.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.coffee meta.function.coffee storage.type.function.coffee", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "alert", - "t": "source.coffee meta.function-call.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.coffee meta.function-call.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Drive ", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee source.coffee.embedded.source punctuation.section.embedded.coffee", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "@name", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee source.coffee.embedded.source variable.other.readwrite.instance.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "source.coffee.embedded: #9CDCFE", - "light_vs": "source.coffee.embedded: #FF0000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee source.coffee.embedded.source punctuation.section.embedded.coffee", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "\"", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "class", - "t": "source.coffee meta.class.coffee storage.type.class.coffee", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee meta.class.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Car", - "t": "source.coffee meta.class.coffee entity.name.type.class.coffee", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.coffee meta.class.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "extends", - "t": "source.coffee meta.class.coffee keyword.control.inheritance.coffee", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.coffee meta.class.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Vehicle", - "t": "source.coffee meta.class.coffee entity.other.inherited-class.coffee", - "r": { - "dark_plus": "entity.other.inherited-class: #4EC9B0", - "light_plus": "entity.other.inherited-class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.other.inherited-class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "drive", - "t": "source.coffee meta.function.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.coffee meta.function.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.begin.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.end.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.coffee meta.function.coffee storage.type.function.coffee", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "alert", - "t": "source.coffee meta.function-call.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.coffee meta.function-call.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Driving ", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee source.coffee.embedded.source punctuation.section.embedded.coffee", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "@name", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee source.coffee.embedded.source variable.other.readwrite.instance.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "source.coffee.embedded: #9CDCFE", - "light_vs": "source.coffee.embedded: #FF0000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee source.coffee.embedded.source punctuation.section.embedded.coffee", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "\"", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee string.quoted.double.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "c", - "t": "source.coffee variable.assignment.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.coffee meta.class.instance.constructor.coffee keyword.operator.new.coffee", - "r": { - "dark_plus": "keyword.operator.new: #569CD6", - "light_plus": "keyword.operator.new: #0000FF", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "keyword.operator.new: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee meta.class.instance.constructor.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Car", - "t": "source.coffee meta.class.instance.constructor.coffee entity.name.type.instance.coffee", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.coffee string.quoted.double.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Volvo", - "t": "source.coffee string.quoted.double.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.coffee string.quoted.double.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "while", - "t": "source.coffee keyword.control.coffee", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "onTheRoad", - "t": "source.coffee meta.function-call.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee punctuation.definition.arguments.begin.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.coffee meta.function-call.coffee meta.arguments.coffee punctuation.definition.arguments.end.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "c", - "t": "source.coffee variable.other.object.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.coffee meta.method-call.coffee punctuation.separator.method.period.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "drive", - "t": "source.coffee meta.method-call.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.coffee meta.method-call.coffee meta.arguments.coffee punctuation.definition.arguments.begin.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.coffee meta.method-call.coffee meta.arguments.coffee punctuation.definition.arguments.end.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "vehicles", - "t": "source.coffee variable.assignment.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.coffee meta.brace.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.coffee meta.class.instance.constructor.coffee keyword.operator.new.coffee", - "r": { - "dark_plus": "keyword.operator.new: #569CD6", - "light_plus": "keyword.operator.new: #0000FF", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "keyword.operator.new: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee meta.class.instance.constructor.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Car", - "t": "source.coffee meta.class.instance.constructor.coffee entity.name.type.instance.coffee", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.coffee keyword.control.coffee", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " i ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.coffee keyword.control.coffee", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.coffee punctuation.definition.array.begin.bracket.square.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.coffee constant.numeric.decimal.coffee", - "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" - } - }, - { - "c": "..", - "t": "source.coffee keyword.operator.slice.inclusive.coffee", - "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" - } - }, - { - "c": "100", - "t": "source.coffee constant.numeric.decimal.coffee", - "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" - } - }, - { - "c": "]", - "t": "source.coffee punctuation.definition.array.end.bracket.square.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.coffee meta.brace.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "startRace", - "t": "source.coffee meta.function.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.coffee meta.function.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.begin.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "vehicles", - "t": "source.coffee meta.function.coffee meta.parameters.coffee variable.parameter.function.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.coffee meta.function.coffee meta.parameters.coffee punctuation.definition.parameters.end.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.coffee meta.function.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.coffee meta.function.coffee storage.type.function.coffee", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.coffee punctuation.definition.array.begin.bracket.square.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "vehicle", - "t": "source.coffee variable.other.object.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.coffee meta.method-call.coffee punctuation.separator.method.period.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "drive", - "t": "source.coffee meta.method-call.coffee entity.name.function.coffee", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.coffee meta.method-call.coffee meta.arguments.coffee punctuation.definition.arguments.begin.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.coffee meta.method-call.coffee meta.arguments.coffee punctuation.definition.arguments.end.bracket.round.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.coffee keyword.control.coffee", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " vehicle ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.coffee keyword.control.coffee", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " vehicles", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.coffee punctuation.definition.array.end.bracket.square.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fancyRegExp", - "t": "source.coffee variable.assignment.coffee", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.coffee keyword.operator.assignment.coffee", - "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" - } - }, - { - "c": " ", - "t": "source.coffee", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "///", - "t": "source.coffee string.regexp.multiline.coffee punctuation.definition.string.begin.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\t", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "(", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp punctuation.definition.group.regexp", - "r": { - "dark_plus": "punctuation.definition.group.regexp: #CE9178", - "light_plus": "punctuation.definition.group.regexp: #D16969", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\d", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp constant.character.character-class.regexp", - "r": { - "dark_plus": "constant.character.character-class.regexp: #D16969", - "light_plus": "constant.character.character-class.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "+", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp keyword.operator.quantifier.regexp", - "r": { - "dark_plus": "keyword.operator.quantifier.regexp: #D7BA7D", - "light_plus": "keyword.operator.quantifier.regexp: #000000", - "dark_vs": "keyword.operator: #D4D4D4", - "light_vs": "keyword.operator: #000000", - "hc_black": "keyword.operator: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp punctuation.definition.group.regexp", - "r": { - "dark_plus": "punctuation.definition.group.regexp: #CE9178", - "light_plus": "punctuation.definition.group.regexp: #D16969", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\t", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "#", - "t": "source.coffee string.regexp.multiline.coffee comment.line.number-sign.coffee punctuation.definition.comment.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " numbers", - "t": "source.coffee string.regexp.multiline.coffee comment.line.number-sign.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "(", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp punctuation.definition.group.regexp", - "r": { - "dark_plus": "punctuation.definition.group.regexp: #CE9178", - "light_plus": "punctuation.definition.group.regexp: #D16969", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\w", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp constant.character.character-class.regexp", - "r": { - "dark_plus": "constant.character.character-class.regexp: #D16969", - "light_plus": "constant.character.character-class.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "*", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp keyword.operator.quantifier.regexp", - "r": { - "dark_plus": "keyword.operator.quantifier.regexp: #D7BA7D", - "light_plus": "keyword.operator.quantifier.regexp: #000000", - "dark_vs": "keyword.operator: #D4D4D4", - "light_vs": "keyword.operator: #000000", - "hc_black": "keyword.operator: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.coffee string.regexp.multiline.coffee meta.group.regexp punctuation.definition.group.regexp", - "r": { - "dark_plus": "punctuation.definition.group.regexp: #CE9178", - "light_plus": "punctuation.definition.group.regexp: #D16969", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\t", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "#", - "t": "source.coffee string.regexp.multiline.coffee comment.line.number-sign.coffee punctuation.definition.comment.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " letters", - "t": "source.coffee string.regexp.multiline.coffee comment.line.number-sign.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "$", - "t": "source.coffee string.regexp.multiline.coffee keyword.control.anchor.regexp", - "r": { - "dark_plus": "keyword.control.anchor.regexp: #DCDCAA", - "light_plus": "keyword.control.anchor.regexp: #EE0000", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "\t\t", - "t": "source.coffee string.regexp.multiline.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "#", - "t": "source.coffee string.regexp.multiline.coffee comment.line.number-sign.coffee punctuation.definition.comment.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " the end", - "t": "source.coffee string.regexp.multiline.coffee comment.line.number-sign.coffee", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "///", - "t": "source.coffee string.regexp.multiline.coffee punctuation.definition.string.end.coffee", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - } -] \ No newline at end of file diff --git a/extensions/cpp/.vscodeignore b/extensions/cpp/.vscodeignore deleted file mode 100644 index d42f161c710..00000000000 --- a/extensions/cpp/.vscodeignore +++ /dev/null @@ -1,3 +0,0 @@ -build/** -test/** -cgmanifest.json diff --git a/extensions/cpp/build/update-grammars.js b/extensions/cpp/build/update-grammars.js deleted file mode 100644 index 28b4ca9236f..00000000000 --- a/extensions/cpp/build/update-grammars.js +++ /dev/null @@ -1,15 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * 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('../../../build/npm/update-grammar'); - -updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/c.tmLanguage.json', './syntaxes/c.tmLanguage.json', undefined, 'master', 'source/languages/cpp/'); -updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/cpp.tmLanguage.json', './syntaxes/cpp.tmLanguage.json', undefined, 'master', 'source/languages/cpp/'); -updateGrammar.update('jeff-hykin/cpp-textmate-grammar', 'syntaxes/cpp.embedded.macro.tmLanguage.json', './syntaxes/cpp.embedded.macro.tmLanguage.json', undefined, 'master', 'source/languages/cpp/'); - -// `source.c.platform` which is still included by other grammars -updateGrammar.update('textmate/c.tmbundle', 'Syntaxes/Platform.tmLanguage', './syntaxes/platform.tmLanguage.json'); - diff --git a/extensions/cpp/cgmanifest.json b/extensions/cpp/cgmanifest.json deleted file mode 100644 index a483664d1c5..00000000000 --- a/extensions/cpp/cgmanifest.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "jeff-hykin/cpp-textmate-grammar", - "repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar", - "commitHash": "f074a48ae0b7ba313af3faf3d8bfda8537864bd1" - } - }, - "license": "MIT", - "version": "1.15.5", - "description": "The files syntaxes/c.json and syntaxes/c++.json were derived from https://github.com/atom/language-c which was originally converted from the C TextMate bundle https://github.com/textmate/c.tmbundle." - }, - { - "component": { - "type": "git", - "git": { - "name": "textmate/c.tmbundle", - "repositoryUrl": "https://github.com/textmate/c.tmbundle", - "commitHash": "60daf83b9d45329524f7847a75e9298b3aae5805" - } - }, - "licenseDetail": [ - "Copyright (c) textmate-c.tmbundle authors", - "", - "If not otherwise specified (see below), files in this repository fall under the following license:", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information,", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ], - "license": "TextMate Bundle License", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/cpp/language-configuration.json b/extensions/cpp/language-configuration.json deleted file mode 100644 index d430c4d1518..00000000000 --- a/extensions/cpp/language-configuration.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": ["/*", "*/"] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "[", "close": "]" }, - { "open": "{", "close": "}" }, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["<", ">"] - ], - "folding": { - "markers": { - "start": "^\\s*#pragma\\s+region\\b", - "end": "^\\s*#pragma\\s+endregion\\b" - } - } -} diff --git a/extensions/cpp/package.json b/extensions/cpp/package.json deleted file mode 100644 index 1c8a244d285..00000000000 --- a/extensions/cpp/package.json +++ /dev/null @@ -1,87 +0,0 @@ -{ - "name": "cpp", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ./build/update-grammars.js" - }, - "contributes": { - "languages": [ - { - "id": "c", - "extensions": [ - ".c", - ".i" - ], - "aliases": [ - "C", - "c" - ], - "configuration": "./language-configuration.json" - }, - { - "id": "cpp", - "extensions": [ - ".cpp", - ".cc", - ".cxx", - ".c++", - ".hpp", - ".hh", - ".hxx", - ".h++", - ".h", - ".ii", - ".ino", - ".inl", - ".ipp", - ".hpp.in", - ".h.in" - ], - "aliases": [ - "C++", - "Cpp", - "cpp" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "c", - "scopeName": "source.c", - "path": "./syntaxes/c.tmLanguage.json" - }, - { - "language": "cpp", - "scopeName": "source.cpp.embedded.macro", - "path": "./syntaxes/cpp.embedded.macro.tmLanguage.json" - }, - { - "language": "cpp", - "scopeName": "source.cpp", - "path": "./syntaxes/cpp.tmLanguage.json" - }, - { - "scopeName": "source.c.platform", - "path": "./syntaxes/platform.tmLanguage.json" - } - ], - "snippets": [ - { - "language": "c", - "path": "./snippets/c.code-snippets" - }, - { - "language": "cpp", - "path": "./snippets/cpp.code-snippets" - } - ] - } -} diff --git a/extensions/cpp/package.nls.json b/extensions/cpp/package.nls.json deleted file mode 100644 index 558bf45298a..00000000000 --- a/extensions/cpp/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "C/C++ Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in C/C++ files." -} \ No newline at end of file diff --git a/extensions/cpp/snippets/c.code-snippets b/extensions/cpp/snippets/c.code-snippets deleted file mode 100644 index d9628dfe42c..00000000000 --- a/extensions/cpp/snippets/c.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "#pragma region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "#pragma endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/cpp/snippets/cpp.code-snippets b/extensions/cpp/snippets/cpp.code-snippets deleted file mode 100644 index d9628dfe42c..00000000000 --- a/extensions/cpp/snippets/cpp.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "#pragma region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "#pragma endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/cpp/syntaxes/c.tmLanguage.json b/extensions/cpp/syntaxes/c.tmLanguage.json deleted file mode 100644 index 7ce64b81de7..00000000000 --- a/extensions/cpp/syntaxes/c.tmLanguage.json +++ /dev/null @@ -1,3339 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master/syntaxes/c.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/f074a48ae0b7ba313af3faf3d8bfda8537864bd1", - "name": "C", - "scopeName": "source.c", - "patterns": [ - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#predefined_macros" - }, - { - "include": "#comments" - }, - { - "include": "#switch_statement" - }, - { - "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", - "name": "keyword.control.c" - }, - { - "include": "#storage_types" - }, - { - "match": "typedef", - "name": "keyword.other.typedef.c" - }, - { - "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", - "name": "storage.modifier.c" - }, - { - "match": "\\bk[A-Z]\\w*\\b", - "name": "constant.other.variable.mac-classic.c" - }, - { - "match": "\\bg[A-Z]\\w*\\b", - "name": "variable.other.readwrite.global.mac-classic.c" - }, - { - "match": "\\bs[A-Z]\\w*\\b", - "name": "variable.other.readwrite.static.mac-classic.c" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.c" - }, - { - "include": "#operators" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "name": "meta.preprocessor.macro.c", - "begin": "((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))((#)\\s*define\\b)\\s+((?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.other.lt-gt.include.c" - } - ] - }, - { - "include": "#pragma-mark" - }, - { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.c" - }, - "2": { - "name": "punctuation.definition.directive.c" - } - }, - "end": "(?=(?://|/\\*))|(?))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.object.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.c" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.c" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.object.c" - }, - { - "name": "everything.else.c", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.c" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "backslash_escapes": { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.c" - }, - "block": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.c" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.c" - } - }, - "name": "meta.block.c", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - }, - "block_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.c", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.c" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.c" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.c" - } - }, - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - { - "include": "#parens-block" - }, - { - "include": "$base" - } - ] - }, - "c_conditional_context": { - "patterns": [ - { - "include": "$self" - }, - { - "include": "#block_innards" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.c", - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "case_statement": { - "name": "meta.conditional.case.c", - "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?\\s*)(\\/\\/[!\\/]+)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.documentation.c" - } - }, - "end": "(?<=\\n)(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.italic.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.bold.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.inline.raw.string.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.c" - } - ] - }, - "3": { - "name": "variable.parameter.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc" - } - ] - }, - { - "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", - "captures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.c" - }, - "2": { - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.italic.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.bold.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.inline.raw.string.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.c" - } - ] - }, - "3": { - "name": "variable.parameter.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc" - } - ] - }, - "3": { - "name": "punctuation.definition.comment.end.documentation.c" - } - }, - "name": "comment.block.documentation.c" - }, - { - "name": "comment.block.documentation.c", - "begin": "((?>\\s*)\\/\\*[!*]+(?:(?:\\n|$)|(?=\\s)))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.c" - } - }, - "end": "([!*]*\\*\\/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.end.documentation.c" - } - }, - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.italic.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.bold.doxygen.c" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))\\s+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "name": "markup.inline.raw.string.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?\\s*(?:in|out)\\s*)+)\\])?\\s+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.c" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.c" - } - ] - }, - "3": { - "name": "variable.parameter.c" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|uml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.c" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc" - } - ] - }, - { - "match": "^\\/\\* =(\\s*.*?)\\s*= \\*\\/$\\n?", - "captures": { - "1": { - "name": "meta.toc-list.banner.block.c" - } - }, - "name": "comment.block.banner.c" - }, - { - "name": "comment.block.c", - "begin": "(\\/\\*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.c" - } - }, - "end": "(\\*\\/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.end.c" - } - } - }, - { - "match": "^\\/\\/ =(\\s*.*?)\\s*=$\\n?", - "captures": { - "1": { - "name": "meta.toc-list.banner.line.c" - } - }, - "name": "comment.line.banner.c" - }, - { - "begin": "((?:^[ \\t]+)?)(?=\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.c" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "name": "comment.line.double-slash.c", - "begin": "(\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.c" - } - }, - "end": "(?=\\n)", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - "default_statement": { - "name": "meta.conditional.case.c", - "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.c" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - "function-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses" - }, - { - "name": "meta.function.definition.parameters.c", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.c" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "$base" - } - ] - }, - "inline_comment": { - "match": "(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/))", - "captures": { - "1": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "2": { - "name": "comment.block.c" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.c" - } - } - } - ] - }, - "member_access": { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:atomic_uint_least64_t|atomic_uint_least16_t|atomic_uint_least32_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_fast64_t|atomic_uint_fast32_t|atomic_int_least64_t|atomic_int_least32_t|pthread_rwlockattr_t|atomic_uint_fast16_t|pthread_mutexattr_t|atomic_int_fast16_t|atomic_uint_fast8_t|atomic_int_fast64_t|atomic_int_least8_t|atomic_int_fast32_t|atomic_int_fast8_t|pthread_condattr_t|atomic_uintptr_t|atomic_ptrdiff_t|pthread_rwlock_t|atomic_uintmax_t|pthread_mutex_t|atomic_intmax_t|atomic_intptr_t|atomic_char32_t|atomic_char16_t|pthread_attr_t|atomic_wchar_t|uint_least64_t|uint_least32_t|uint_least16_t|pthread_cond_t|pthread_once_t|uint_fast64_t|uint_fast16_t|atomic_size_t|uint_least8_t|int_least64_t|int_least32_t|int_least16_t|pthread_key_t|atomic_ullong|atomic_ushort|uint_fast32_t|atomic_schar|atomic_short|uint_fast8_t|int_fast64_t|int_fast32_t|int_fast16_t|atomic_ulong|atomic_llong|int_least8_t|atomic_uchar|memory_order|suseconds_t|int_fast8_t|atomic_bool|atomic_char|atomic_uint|atomic_long|atomic_int|useconds_t|_Imaginary|blksize_t|pthread_t|in_addr_t|uintptr_t|in_port_t|uintmax_t|uintmax_t|blkcnt_t|uint16_t|unsigned|_Complex|uint32_t|intptr_t|intmax_t|intmax_t|uint64_t|u_quad_t|int64_t|int32_t|ssize_t|caddr_t|clock_t|uint8_t|u_short|swblk_t|segsz_t|int16_t|fixpt_t|daddr_t|nlink_t|qaddr_t|size_t|time_t|mode_t|signed|quad_t|ushort|u_long|u_char|double|int8_t|ino_t|uid_t|pid_t|_Bool|float|dev_t|div_t|short|gid_t|off_t|u_int|key_t|id_t|uint|long|void|char|bool|id_t|int)\\b)[a-zA-Z_]\\w*\\b(?!\\())", - "captures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - } - } - } - ] - }, - "5": { - "name": "variable.other.member.c" - } - } - }, - "method_access": { - "contentName": "meta.function-call.member.c", - "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.c" - }, - "2": { - "name": "punctuation.separator.dot-access.c" - }, - "3": { - "name": "punctuation.separator.pointer-access.c" - } - } - } - ] - }, - "5": { - "name": "entity.name.function.member.c" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "numbers": { - "match": "(?>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.c" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.c" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.c" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.c" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.c" - }, - { - "match": "=", - "name": "keyword.operator.assignment.c" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.c" - }, - { - "begin": "(\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.c" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.c" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "$base" - } - ] - } - ] - }, - "parens": { - "name": "meta.parens.c", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "$base" - } - ] - }, - "parens-block": { - "name": "meta.parens.block.c", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.c" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.c" - } - }, - "patterns": [ - { - "include": "#block_innards" - }, - { - "match": "(?-mix:(?=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.c" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.c" - } - }, - "end": "(\\))|(?\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", - "captures": { - "1": { - "name": "variable.parameter.probably.c" - } - } - }, - "static_assert": { - "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "keyword.other.static_assert.c" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "8": { - "name": "comment.block.c" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "10": { - "name": "punctuation.section.arguments.begin.bracket.round.static_assert.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.static_assert.c" - } - }, - "patterns": [ - { - "name": "meta.static_assert.message.c", - "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.c" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#string_context" - } - ] - }, - { - "include": "#evaluation_context" - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "(?-mix:(?\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))(?:\\n|$)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - }, - { - "include": "#comments" - }, - { - "begin": "(((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.c" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "4": { - "name": "comment.block.c" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.assembly.c" - } - }, - "patterns": [ - { - "name": "string.quoted.double.c", - "contentName": "meta.embedded.assembly.c", - "begin": "(R?)(\")", - "beginCaptures": { - "1": { - "name": "meta.encoding.c" - }, - "2": { - "name": "punctuation.definition.string.begin.assembly.c" - } - }, - "end": "(\")", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.assembly.c" - } - }, - "patterns": [ - { - "include": "source.asm" - }, - { - "include": "source.x86" - }, - { - "include": "source.x86_64" - }, - { - "include": "source.arm" - }, - { - "include": "#backslash_escapes" - }, - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.assembly.inner.c" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\[((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))([a-zA-Z_]\\w*)((?:(?:(?>\\s+)|(\\/\\*)((?>(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+?|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z)))\\]", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "variable.other.asm.label.c" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "8": { - "name": "comment.block.c" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - } - } - }, - { - "match": ":", - "name": "punctuation.separator.delimiter.colon.assembly.c" - }, - { - "include": "#comments" - } - ] - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.c" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.c" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.c" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.c" - } - } - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.double.c", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.c" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.c" - } - }, - "name": "string.quoted.single.c", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "switch_conditional_parentheses": { - "name": "meta.conditional.switch.c", - "begin": "((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.c punctuation.definition.comment.begin.c" - }, - "3": { - "name": "comment.block.c" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.c punctuation.definition.comment.end.c" - }, - { - "match": "\\*", - "name": "comment.block.c" - } - ] - }, - "5": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.c" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.c" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - }, - { - "include": "#c_conditional_context" - } - ] - }, - "switch_statement": { - "name": "meta.block.switch.c", - "begin": "(((?>(?:(?:(?>(?(?:[^\\*]|(?>\\*+)[^\\/])*)((?>\\*+)\\/)))+|(?:(?:(?:(?:\\b|(?<=\\W))|(?=\\W))|\\A)|\\Z))))((?|\\?\\?>)|(?=[;>\\[\\]=]))", - "patterns": [ - { - "name": "meta.head.switch.c", - "begin": "\\G ?", - "end": "((?:\\{|<%|\\?\\?<|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.switch.c" - } - }, - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$self" - } - ] - }, - { - "name": "meta.body.switch.c", - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "(\\}|%>|\\?\\?>)", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.switch.c" - } - }, - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$self" - }, - { - "include": "#block_innards" - } - ] - }, - { - "name": "meta.tail.switch.c", - "begin": "(?<=\\}|%>|\\?\\?>)[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "vararg_ellipses": { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#comments" - }, - { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.other.asm.label.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": ":", - "name": "punctuation.separator.delimiter.colon.assembly.cpp" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "attributes_context": { - "patterns": [ - { - "include": "#cpp_attributes" - }, - { - "include": "#gcc_attributes" - }, - { - "include": "#ms_attributes" - }, - { - "include": "#alignas_attribute" - } - ] - }, - "block": { - "begin": "{", - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", - "captures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.cpp" - }, - "2": { - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - "3": { - "name": "punctuation.definition.comment.end.documentation.cpp" - } - }, - "name": "comment.block.documentation.cpp" - }, - { - "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))", - "end": "[!*]*\\*\\/|(?=(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "include": "source.cpp#emacs_file_banner" - }, - { - "include": "#block_comment" - }, - { - "include": "#line_comment" - }, - { - "include": "source.cpp#invalid_comment_end" - } - ] - }, - "constructor_inline": { - "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "source.cpp#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)|(?=(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()", - "end": "\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "source.cpp#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)|(?=(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()", - "end": "\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)", - "end": "\\}|(?=(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?", - "end": "(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()", - "end": "\\)|(?=(?))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.modifier.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "storage.modifier.$12.cpp" - }, - "13": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "15": { - "name": "comment.block.cpp" - }, - "16": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "17": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "36": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "37": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "38": { - "name": "comment.block.cpp" - }, - "39": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "40": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "41": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "42": { - "name": "comment.block.cpp" - }, - "43": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "44": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "45": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "46": { - "name": "comment.block.cpp" - }, - "47": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "48": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "49": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "50": { - "name": "comment.block.cpp" - }, - "51": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "52": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "53": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "54": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "55": { - "name": "comment.block.cpp" - }, - "56": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "57": { - "patterns": [ - { - "include": "source.cpp#scope_resolution_function_definition_inner_generated" - } - ] - }, - "58": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "59": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "60": {}, - "61": { - "name": "entity.name.function.definition.cpp" - }, - "62": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "63": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "64": { - "name": "comment.block.cpp" - }, - "65": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": {}, - "name": "meta.function.definition.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "punctuation.definition.function.return-type.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", - "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.other.definition.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "function_pointer_parameter": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", - "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.parameter.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "gcc_attributes": { - "begin": "__attribute(?:__)?\\s*\\(\\s*\\(", - "end": "\\)\\s*\\)|(?=(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": {} - } - } - ] - }, - "lambdas": { - "begin": "(?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))", - "end": "(?<=[;}])|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))", - "captures": { - "1": { - "name": "variable.parameter.capture.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.separator.delimiter.comma.cpp" - }, - "7": { - "name": "keyword.operator.assignment.cpp" - } - } - }, - { - "include": "#evaluation_context" - } - ] - }, - "3": {}, - "4": { - "name": "punctuation.definition.capture.end.lambda.cpp" - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "\\(", - "end": "\\)|(?=(?)((?:.+?(?=\\{|$))?)", - "captures": { - "1": { - "name": "punctuation.definition.lambda.return-type.cpp" - }, - "2": { - "name": "storage.type.return-type.lambda.cpp" - } - } - }, - { - "begin": "\\{", - "end": "\\}|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b", - "end": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()", - "end": "\\)|(?=(?|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.property.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "include": "source.cpp#member_access" - }, - { - "include": "#method_access" - } - ] - }, - "10": { - "name": "entity.name.function.member.cpp" - }, - "11": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "ms_attributes": { - "begin": "__declspec\\(", - "end": "\\)|(?=(?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=))|((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "33": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "34": { - "name": "comment.block.cpp" - }, - "35": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "36": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "37": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "38": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "39": { - "name": "comment.block.cpp" - }, - "40": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "41": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "42": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "43": { - "name": "comment.block.cpp" - }, - "44": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "45": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "entity.name.operator.type.reference.cpp" - } - ] - }, - "59": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "60": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "61": { - "name": "comment.block.cpp" - }, - "62": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "63": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "64": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "65": { - "name": "comment.block.cpp" - }, - "66": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "67": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "68": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "69": { - "name": "comment.block.cpp" - }, - "70": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "71": { - "name": "entity.name.operator.type.array.cpp" - }, - "72": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "73": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "74": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "75": { - "name": "comment.block.cpp" - }, - "76": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "77": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "78": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "79": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "80": { - "name": "comment.block.cpp" - }, - "81": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.cpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.cpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.cpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.cpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.cpp" - }, - { - "include": "source.cpp#assignment_operator" - }, - { - "match": "%|\\*|\\/|-|\\+", - "name": "keyword.operator.cpp" - }, - { - "include": "#ternary_operator" - } - ] - }, - "parameter": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)", - "end": "(?:(?=\\))|(,))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "source.cpp#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "parameter_or_maybe_value": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)", - "end": "(?:(?=\\))|(,))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "#function_call" - }, - { - "include": "source.cpp#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#evaluation_context" - } - ] - }, - "parentheses": { - "begin": "\\(", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b", - "end": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))", - "end": "^(?!\\s*+#\\s*(?:else|endif))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?|(?=(?|(?=(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_function_pointer": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", - "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()|(?=(?|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - } - ] - }, - "typedef_struct": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_union": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typeid_operator": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))|(?=(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "source.cpp#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))|(?=(?|\\?\\?>|(?=(?|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)|(?=(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?:(?:protected)|(?:private)|(?:public)))(?:(?:\\s)+)?(:))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "storage.type.modifier.access.control.$4.cpp" - }, - "4": {}, - "5": { - "name": "punctuation.separator.colon.access.control.cpp" - } - } - }, - "alignas_attribute": { - "begin": "alignas\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - } - ] - }, - { - "match": "(using)(?:\\s)+((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" - } - }, - "contentName": "meta.arguments.operator.alignas", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "alignof_operator": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" - } - }, - "contentName": "meta.arguments.operator.alignof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "assembly": { - "begin": "(\\b(?:__asm__|asm)\\b)(?:(?:\\s)+)?((?:volatile)?)", - "end": "(?!\\G)", - "beginCaptures": { - "1": { - "name": "storage.type.asm.cpp" - }, - "2": { - "name": "storage.modifier.cpp" - } - }, - "endCaptures": {}, - "name": "meta.asm.cpp", - "patterns": [ - { - "match": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\n)|$)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#comments" - }, - { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.assembly.cpp" - } - }, - "patterns": [ - { - "begin": "(R?)(\")", - "end": "\"", - "beginCaptures": { - "1": { - "name": "meta.encoding.cpp" - }, - "2": { - "name": "punctuation.definition.string.begin.assembly.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.assembly.cpp" - } - }, - "name": "string.quoted.double.cpp", - "contentName": "meta.embedded.assembly", - "patterns": [ - { - "include": "source.asm" - }, - { - "include": "source.x86" - }, - { - "include": "source.x86_64" - }, - { - "include": "source.arm" - }, - { - "include": "#backslash_escapes" - }, - { - "include": "#string_escaped_char" - } - ] - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.assembly.inner.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.assembly.inner.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\[((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.other.asm.label.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": ":", - "name": "punctuation.separator.delimiter.colon.assembly.cpp" - }, - { - "include": "#comments" - } - ] - } - ] - }, - "assignment_operator": { - "match": "\\=", - "name": "keyword.operator.assignment.cpp" - }, - "attributes_context": { - "patterns": [ - { - "include": "#cpp_attributes" - }, - { - "include": "#gcc_attributes" - }, - { - "include": "#ms_attributes" - }, - { - "include": "#alignas_attribute" - } - ] - }, - "backslash_escapes": { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3][0-7]{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape" - }, - "block": { - "begin": "{", - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.cpp" - } - }, - "name": "meta.block.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - "block_comment": { - "begin": "\\s*+(\\/\\*)", - "end": "\\*\\/", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.cpp" - } - }, - "name": "comment.block.cpp" - }, - "builtin_storage_type_initilizer": { - "begin": "(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.class.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, - "name": "meta.head.class.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, - "name": "meta.body.class.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.class.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "class_declare": { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.class.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "comma": { - "match": ",", - "name": "punctuation.separator.delimiter.comma.cpp" - }, - "comma_in_template_argument": { - "match": ",", - "name": "punctuation.separator.delimiter.comma.template.argument.cpp" - }, - "comments": { - "patterns": [ - { - "begin": "^(?:(?:\\s)+)?+(\\/\\/[!\\/]+)", - "end": "(?<=\\n)(?|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "match": "(\\/\\*[!*]+(?=\\s))(.+)([!*]*\\*\\/)", - "captures": { - "1": { - "name": "punctuation.definition.comment.begin.documentation.cpp" - }, - "2": { - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - "3": { - "name": "punctuation.definition.comment.end.documentation.cpp" - } - }, - "name": "comment.block.documentation.cpp" - }, - { - "begin": "(?:(?:\\s)+)?+\\/\\*[!*]+(?:(?:(?:\\n)|$)|(?=\\s))", - "end": "[!*]*\\*\\/", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.documentation.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.documentation.cpp" - } - }, - "name": "comment.block.documentation.cpp", - "patterns": [ - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:callergraph|callgraph|else|endif|f\\$|f\\[|f\\]|hidecallergraph|hidecallgraph|hiderefby|hiderefs|hideinitializer|htmlinclude|n|nosubgrouping|private|privatesection|protected|protectedsection|public|publicsection|pure|showinitializer|showrefby|showrefs|tableofcontents|\\$|\\#|<|>|%|\"|\\.|=|::|\\||\\-\\-|\\-\\-\\-)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:a|em|e))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.italic.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]b)(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.bold.doxygen.cpp" - } - } - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@](?:c|p))(?:\\s)+(\\S+)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "name": "markup.inline.raw.string.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:a|anchor|b|c|cite|copybrief|copydetail|copydoc|def|dir|dontinclude|e|em|emoji|enum|example|extends|file|idlexcept|implements|include|includedoc|includelineno|latexinclude|link|memberof|namespace|p|package|ref|refitem|related|relates|relatedalso|relatesalso|verbinclude)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:addindex|addtogroup|category|class|defgroup|diafile|dotfile|elseif|fn|headerfile|if|ifnot|image|ingroup|interface|line|mainpage|mscfile|name|overload|page|property|protocol|section|skip|skipline|snippet|snippetdoc|snippetlineno|struct|subpage|subsection|subsubsection|typedef|union|until|vhdlflow|weakgroup)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "((?<=[\\s*!\\/])[\\\\@]param)(?:\\s*\\[((?:,?(?:(?:\\s)+)?(?:in|out)(?:(?:\\s)+)?)+)\\])?(?:\\s)+(\\b\\w+\\b)", - "captures": { - "1": { - "name": "storage.type.class.doxygen.cpp" - }, - "2": { - "patterns": [ - { - "match": "in|out", - "name": "keyword.other.parameter.direction.$0.cpp" - } - ] - }, - "3": { - "name": "variable.parameter.cpp" - } - } - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:arg|attention|author|authors|brief|bug|copyright|date|deprecated|details|exception|invariant|li|note|par|paragraph|param|post|pre|remark|remarks|result|return|returns|retval|sa|see|short|since|test|throw|throws|todo|tparam|version|warning|xrefitem)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?<=[\\s*!\\/])[\\\\@](?:code|cond|docbookonly|dot|htmlonly|internal|latexonly|link|manonly|msc|parblock|rtfonly|secreflist|startuml|verbatim|xmlonly|endcode|endcond|enddocbookonly|enddot|endhtmlonly|endinternal|endlatexonly|endlink|endmanonly|endmsc|endparblock|endrtfonly|endsecreflist|enduml|endverbatim|endxmlonly)\\b(?:\\{[^}]*\\})?", - "name": "storage.type.class.doxygen.cpp" - }, - { - "match": "(?:\\b[A-Z]+:|@[a-z_]+:)", - "name": "storage.type.class.gtkdoc.cpp" - } - ] - }, - { - "include": "#emacs_file_banner" - }, - { - "include": "#block_comment" - }, - { - "include": "#line_comment" - }, - { - "include": "#invalid_comment_end" - } - ] - }, - "constructor_inline": { - "begin": "^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.constructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "patterns": [ - { - "include": "#functional_specifiers_pre_parameters" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "19": { - "name": "entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.constructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.head.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.initializers.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "3": {}, - "4": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.body.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "constructor_root": { - "begin": "\\s*+((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.constructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.constructor.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "include": "#functional_specifiers_pre_parameters" - }, - { - "begin": ":", - "end": "(?=\\{)", - "beginCaptures": { - "0": { - "name": "punctuation.separator.initializers.cpp" - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "entity.name.function.call.initializer.cpp" - }, - "2": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "3": {}, - "4": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.initializer.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.initializer.cpp" - } - }, - "contentName": "meta.parameter.initialization", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.constructor.cpp" - } - }, - "name": "meta.body.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.constructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "control_flow_keywords": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "keyword.control.$3.cpp" - } - } - }, - "cpp_attributes": { - "begin": "\\[\\[", - "end": "\\]\\]", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - } - ] - }, - { - "match": "(using)(?:\\s)+((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\{)", - "end": "\\}", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((import))(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))(?:(?:\\s)+)?(;?)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "keyword.control.directive.import.cpp" - }, - "5": { - "name": "string.quoted.other.lt-gt.include.cpp" - }, - "6": { - "name": "punctuation.definition.string.begin.cpp" - }, - "7": { - "name": "punctuation.definition.string.end.cpp" - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "name": "string.quoted.double.include.cpp" - }, - "11": { - "name": "punctuation.definition.string.begin.cpp" - }, - "12": { - "name": "punctuation.definition.string.end.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "15": { - "name": "entity.name.other.preprocessor.macro.include.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "18": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "19": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "22": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.preprocessor.import.cpp" - }, - "d9bc4796b0b_preprocessor_number_literal": { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" - } - }, - "contentName": "meta.arguments.decltype", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "decltype_specifier": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.other.decltype.cpp storage.type.decltype.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.decltype.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.decltype.cpp" - } - }, - "contentName": "meta.arguments.decltype", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "default_statement": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:constexpr)|(?:explicit)|(?:mutable)|(?:virtual)|(?:inline)|(?:friend))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(~(?|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.member.destructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "9": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "patterns": [ - { - "include": "#functional_specifiers_pre_parameters" - } - ] - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "17": { - "name": "comment.block.cpp" - }, - "18": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "19": { - "name": "entity.name.function.destructor.cpp entity.name.function.definition.special.member.destructor.cpp" - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.head.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": "(\\=)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.member.destructor", - "patterns": [] - }, - { - "match": "((?:(?:final)|(?:override)))+", - "captures": { - "1": { - "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp" - } - } - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.body.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "destructor_root": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)(((?>(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))::((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))~\\14((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\())", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.member.destructor.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.destructor.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(default)|(delete))", - "captures": { - "1": { - "name": "keyword.operator.assignment.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "keyword.other.default.constructor.cpp" - }, - "7": { - "name": "keyword.other.delete.constructor.cpp" - } - } - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.member.destructor.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.member.destructor.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.member.destructor", - "patterns": [] - }, - { - "match": "((?:(?:final)|(?:override)))+", - "captures": { - "1": { - "name": "keyword.operator.wordlike.cpp keyword.operator.$1.cpp" - } - } - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.member.destructor.cpp" - } - }, - "name": "meta.body.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.member.destructor.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "diagnostic": { - "begin": "(^((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:error|warning)))\\b(?:(?:\\s)+)?", - "end": "(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?(::))?(?:(?:\\s)+)?((?|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.enum.cpp" - }, - "1": { - "name": "storage.type.enum.cpp" - }, - "2": { - "name": "storage.type.enum.enum-key.$2.cpp" - }, - "3": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "4": { - "name": "entity.name.type.enum.cpp" - }, - "5": { - "name": "punctuation.separator.colon.type-specifier.cpp" - }, - "6": { - "patterns": [ - { - "include": "#scope_resolution_inner_generated" - } - ] - }, - "7": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "8": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "9": {}, - "10": { - "name": "entity.name.scope-resolution.cpp" - }, - "11": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "12": {}, - "13": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "14": { - "name": "storage.type.integral.$14.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.enum.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.enum.cpp" - } - }, - "name": "meta.head.enum.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.enum.cpp" - } - }, - "name": "meta.body.enum.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#enumerator_list" - }, - { - "include": "#comments" - }, - { - "include": "#comma" - }, - { - "include": "#semicolon" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.enum.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "enum_declare": { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.enum.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "enumerator_list": { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "keyword.control.exception.$3.cpp" - } - } - }, - "extern_block": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(extern)(?=\\s*\\\")", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.extern.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "storage.type.extern.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.extern.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.extern.cpp" - } - }, - "name": "meta.head.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.extern.cpp" - } - }, - "name": "meta.body.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.extern.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "$self" - } - ] - }, - "function_body_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#using_namespace" - }, - { - "include": "#type_alias" - }, - { - "include": "#using_name" - }, - { - "include": "#namespace_alias" - }, - { - "include": "#typedef_class" - }, - { - "include": "#typedef_struct" - }, - { - "include": "#typedef_union" - }, - { - "include": "#misc_keywords" - }, - { - "include": "#standard_declares" - }, - { - "include": "#class_block" - }, - { - "include": "#struct_block" - }, - { - "include": "#union_block" - }, - { - "include": "#enum_block" - }, - { - "include": "#access_control_keywords" - }, - { - "include": "#block" - }, - { - "include": "#static_assert" - }, - { - "include": "#assembly" - }, - { - "include": "#function_pointer" - }, - { - "include": "#switch_statement" - }, - { - "include": "#goto_statement" - }, - { - "include": "#evaluation_context" - }, - { - "include": "#label" - } - ] - }, - "function_call": { - "begin": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_call_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.function.call.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "11": {}, - "12": { - "name": "punctuation.section.arguments.begin.bracket.round.function.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.call.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "function_definition": { - "begin": "(?:(?:^|\\G|(?<=;|\\}))|(?<=>))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<60>?)+>)(?:\\s)*+)?::)*\\s*+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "storage.type.template.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "11": { - "patterns": [ - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.modifier.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "storage.modifier.$12.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "15": { - "name": "comment.block.cpp" - }, - "16": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "17": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "18": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "21": { - "name": "comment.block.cpp" - }, - "22": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "23": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "24": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "25": { - "name": "comment.block.cpp" - }, - "26": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "27": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "36": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "37": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "38": { - "name": "comment.block.cpp" - }, - "39": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "40": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "41": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "42": { - "name": "comment.block.cpp" - }, - "43": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "44": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "45": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "46": { - "name": "comment.block.cpp" - }, - "47": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "48": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "49": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "50": { - "name": "comment.block.cpp" - }, - "51": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "52": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "53": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "54": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "55": { - "name": "comment.block.cpp" - }, - "56": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "57": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_inner_generated" - } - ] - }, - "58": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "59": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "60": {}, - "61": { - "name": "entity.name.function.definition.cpp" - }, - "62": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "63": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "64": { - "name": "comment.block.cpp" - }, - "65": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": {}, - "name": "meta.function.definition.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.cpp" - } - }, - "name": "meta.head.function.definition.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.cpp" - } - }, - "contentName": "meta.function.definition.parameters", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#parameter_or_maybe_value" - }, - { - "include": "#comma" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?<=^|\\))(?:(?:\\s)+)?(->)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<23>?)+>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "punctuation.definition.function.return-type.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "10": { - "name": "comment.block.cpp" - }, - "11": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.cpp" - } - }, - "name": "meta.body.function.definition.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function_parameter_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#parameter" - }, - { - "include": "#comma" - } - ] - }, - "function_pointer": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", - "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.other.definition.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "function_pointer_parameter": { - "begin": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", - "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "variable.parameter.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - "functional_specifiers_pre_parameters": { - "match": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)", - "captures": { - "1": { - "name": "keyword.control.goto.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.label.call.cpp" - } - } - }, - "identifier": { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*" - }, - "include": { - "match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((#)(?:(?:\\s)+)?((?:include|include_next))\\b)(?:(?:\\s)+)?(?:(?:(?:((<)[^>]*(>?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/)))|((\\\")[^\\\"]*((?:\\\")?)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=\\/\\/))))|(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\.(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)*((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;)))))|((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:\\n)|$)|(?=(?:\\/\\/|;))))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "keyword.control.directive.$5.cpp" - }, - "4": { - "name": "punctuation.definition.directive.cpp" - }, - "6": { - "name": "string.quoted.other.lt-gt.include.cpp" - }, - "7": { - "name": "punctuation.definition.string.begin.cpp" - }, - "8": { - "name": "punctuation.definition.string.end.cpp" - }, - "9": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "10": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "11": { - "name": "string.quoted.double.include.cpp" - }, - "12": { - "name": "punctuation.definition.string.begin.cpp" - }, - "13": { - "name": "punctuation.definition.string.end.cpp" - }, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "16": { - "name": "entity.name.other.preprocessor.macro.include.cpp" - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "21": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "22": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - }, - "name": "meta.preprocessor.include.cpp" - }, - "inheritance_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.comma.inheritance.cpp" - }, - { - "match": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": {} - } - } - ] - }, - "inline_builtin_storage_type": { - "match": "(?:\\s)*+(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "entity.name.label.cpp" - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "6": { - "name": "punctuation.separator.label.cpp" - } - } - }, - "lambdas": { - "begin": "(?:(?<=[^\\s]|^)(?])|(?<=\\Wreturn|^return))(?:(?:\\s)+)?(\\[(?!\\[| *+\"| *+\\d))((?:[^\\[\\]]|((??)++\\]))*+)(\\](?!((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))[\\[\\];]))", - "end": "(?<=[;}])", - "beginCaptures": { - "1": { - "name": "punctuation.definition.capture.begin.lambda.cpp" - }, - "2": { - "name": "meta.lambda.capture.cpp", - "patterns": [ - { - "include": "#the_this_keyword" - }, - { - "match": "((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?=\\]|\\z|$)|(,))|(\\=))", - "captures": { - "1": { - "name": "variable.parameter.capture.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.separator.delimiter.comma.cpp" - }, - "7": { - "name": "keyword.operator.assignment.cpp" - } - } - }, - { - "include": "#evaluation_context" - } - ] - }, - "3": {}, - "4": { - "name": "punctuation.definition.capture.end.lambda.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.lambda.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.lambda.cpp" - } - }, - "name": "meta.function.definition.parameters.lambda.cpp", - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - }, - { - "match": "(?)((?:.+?(?=\\{|$))?)", - "captures": { - "1": { - "name": "punctuation.definition.lambda.return-type.cpp" - }, - "2": { - "name": "storage.type.return-type.lambda.cpp" - } - } - }, - { - "begin": "\\{", - "end": "\\}", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.lambda.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.lambda.cpp" - } - }, - "name": "meta.function.definition.body.lambda.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "language_constants": { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?line\\b", - "end": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?define\\b)(?:(?:\\s)+)?((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(\\b(?!uint_least32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_least8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int_fast8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|suseconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|useconds_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_addr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|in_port_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uintptr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|blksize_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intmax_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|unsigned[^Pattern.new(\n match: \\/\\w\\/,\n)]|blkcnt_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|intptr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|swblk_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|wchar_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_short[^Pattern.new(\n match: \\/\\w\\/,\n)]|qaddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|caddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|daddr_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|fixpt_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|nlink_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|segsz_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|clock_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ssize_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int16_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int32_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int64_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int8_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|mode_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|quad_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ushort[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_long[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_char[^Pattern.new(\n match: \\/\\w\\/,\n)]|double[^Pattern.new(\n match: \\/\\w\\/,\n)]|signed[^Pattern.new(\n match: \\/\\w\\/,\n)]|time_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|size_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|key_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|div_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|ino_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|gid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|off_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|pid_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|float[^Pattern.new(\n match: \\/\\w\\/,\n)]|dev_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|u_int[^Pattern.new(\n match: \\/\\w\\/,\n)]|short[^Pattern.new(\n match: \\/\\w\\/,\n)]|bool[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|uint[^Pattern.new(\n match: \\/\\w\\/,\n)]|long[^Pattern.new(\n match: \\/\\w\\/,\n)]|char[^Pattern.new(\n match: \\/\\w\\/,\n)]|void[^Pattern.new(\n match: \\/\\w\\/,\n)]|auto[^Pattern.new(\n match: \\/\\w\\/,\n)]|id_t[^Pattern.new(\n match: \\/\\w\\/,\n)]|int[^Pattern.new(\n match: \\/\\w\\/,\n)])(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?!\\())", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "variable.language.this.cpp" - }, - "4": { - "name": "variable.other.object.access.cpp" - }, - "5": { - "name": "punctuation.separator.dot-access.cpp" - }, - "6": { - "name": "punctuation.separator.pointer-access.cpp" - }, - "7": { - "patterns": [ - { - "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.property.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "include": "#member_access" - }, - { - "include": "#method_access" - } - ] - }, - "8": { - "name": "variable.other.property.cpp" - } - } - }, - "memory_operators": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(delete)(?:(?:\\s)+)?(\\[\\])|(delete))|(new))(?!\\w))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "keyword.operator.wordlike.cpp" - }, - "4": { - "name": "keyword.operator.delete.array.cpp" - }, - "5": { - "name": "keyword.operator.delete.array.bracket.cpp" - }, - "6": { - "name": "keyword.operator.delete.cpp" - }, - "7": { - "name": "keyword.operator.new.cpp" - } - } - }, - "method_access": { - "begin": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:(?:\\s)+)?(?:(?:\\.\\*|\\.)|(?:->\\*|->))(?:(?:\\s)+)?)*)(?:(?:\\s)+)?(~?(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - }, - "9": { - "patterns": [ - { - "match": "(?<=(?:\\.\\*|\\.|->|->\\*))(?:(?:\\s)+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.property.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "match": "(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?\\*|->)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.language.this.cpp" - }, - "6": { - "name": "variable.other.object.access.cpp" - }, - "7": { - "name": "punctuation.separator.dot-access.cpp" - }, - "8": { - "name": "punctuation.separator.pointer-access.cpp" - } - } - }, - { - "include": "#member_access" - }, - { - "include": "#method_access" - } - ] - }, - "10": { - "name": "entity.name.function.member.cpp" - }, - "11": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "misc_keywords": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "keyword.other.$3.cpp" - } - } - }, - "ms_attributes": { - "begin": "__declspec\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.attribute.begin.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.attribute.end.cpp" - } - }, - "name": "support.other.attribute.cpp", - "patterns": [ - { - "include": "#attributes_context" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": {}, - "endCaptures": {}, - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#string_context" - } - ] - }, - { - "match": "(using)(?:\\s)+((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<8>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.namespace.cpp" - }, - "1": { - "name": "keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp" - } - }, - "endCaptures": {}, - "name": "meta.block.namespace.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.namespace.cpp" - } - }, - "name": "meta.head.namespace.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#attributes_context" - }, - { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<4>?)+>)(?:\\s)*+)?::)*\\s*+)(?:(?:\\s)+)?((?|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.namespace.cpp" - } - }, - "name": "meta.body.namespace.cpp", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.namespace.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "noexcept_operator": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" - } - }, - "contentName": "meta.arguments.operator.noexcept", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "number_literal": { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:__cdecl|__clrcall|__stdcall|__fastcall|__thiscall|__vectorcall)?)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(operator)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<55>?)+>)(?:\\s)*+)?::)*+)(?:(?:((?:(?:delete\\[\\])|(?:delete)|(?:new\\[\\])|(?:<=>)|(?:<<=)|(?:new)|(?:>>=)|(?:\\->\\*)|(?:\\/=)|(?:%=)|(?:&=)|(?:>=)|(?:\\|=)|(?:\\+\\+)|(?:\\-\\-)|(?:\\(\\))|(?:\\[\\])|(?:\\->)|(?:\\+\\+)|(?:<<)|(?:>>)|(?:\\-\\-)|(?:<=)|(?:\\^=)|(?:==)|(?:!=)|(?:&&)|(?:\\|\\|)|(?:\\+=)|(?:\\-=)|(?:\\*=)|,|(?:\\+)|(?:\\-)|!|~|(?:\\*)|&|(?:\\*)|(?:\\/)|%|(?:\\+)|(?:\\-)|<|>|&|(?:\\^)|(?:\\|)|=))|((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:\\[\\])?)))|(\"\")((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\<|\\()", - "end": "(?:(?<=\\}|%>|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.function.definition.special.operator-overload.cpp" - }, - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "33": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "34": { - "name": "comment.block.cpp" - }, - "35": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "36": { - "name": "storage.type.modifier.calling-convention.cpp" - }, - "37": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "38": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "39": { - "name": "comment.block.cpp" - }, - "40": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "41": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "42": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "43": { - "name": "comment.block.cpp" - }, - "44": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "45": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.operator.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "entity.name.operator.type.reference.cpp" - } - ] - }, - "59": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "60": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "61": { - "name": "comment.block.cpp" - }, - "62": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "63": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "64": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "65": { - "name": "comment.block.cpp" - }, - "66": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "67": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "68": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "69": { - "name": "comment.block.cpp" - }, - "70": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "71": { - "name": "entity.name.operator.type.array.cpp" - }, - "72": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "73": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "74": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "75": { - "name": "comment.block.cpp" - }, - "76": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "77": { - "name": "entity.name.operator.custom-literal.cpp" - }, - "78": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "79": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "80": { - "name": "comment.block.cpp" - }, - "81": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": {}, - "name": "meta.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.function.definition.special.operator-overload.cpp" - } - }, - "name": "meta.head.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#template_call_range" - }, - { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp" - } - }, - "contentName": "meta.function.definition.parameters.special.operator-overload", - "patterns": [ - { - "include": "#function_parameter_context" - }, - { - "include": "#evaluation_context" - } - ] - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.function.definition.special.operator-overload.cpp" - } - }, - "name": "meta.body.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "#function_body_context" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.function.definition.special.operator-overload.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "operators": { - "patterns": [ - { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignof.cpp" - } - }, - "contentName": "meta.arguments.operator.alignof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.alignas.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.alignas.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.alignas.cpp" - } - }, - "contentName": "meta.arguments.operator.alignas", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" - } - }, - "contentName": "meta.arguments.operator.typeid", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.noexcept.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.noexcept.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.noexcept.cpp" - } - }, - "contentName": "meta.arguments.operator.noexcept", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof.variadic", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "--", - "name": "keyword.operator.decrement.cpp" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.cpp" - }, - { - "match": "%=|\\+=|-=|\\*=|(?>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.cpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.cpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.cpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.cpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.cpp" - }, - { - "include": "#assignment_operator" - }, - { - "match": "%|\\*|\\/|-|\\+", - "name": "keyword.operator.cpp" - }, - { - "include": "#ternary_operator" - } - ] - }, - "over_qualified_types": { - "patterns": [ - { - "match": "(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.struct.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - { - "match": "(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.enum.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - { - "match": "(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.union.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - { - "match": "(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.class.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - } - ] - }, - "parameter": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "name": "meta.parameter.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#function_pointer_parameter" - }, - { - "include": "#decltype" - }, - { - "include": "#vararg_ellipses" - }, - { - "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": {}, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "\\=", - "name": "keyword.operator.assignment.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\)|,|\\[|=|\\n)", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.square.array.type.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.array.type.cpp" - } - }, - "name": "meta.bracket.square.array.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "parameter_class": { - "match": "(class)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.class.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "parameter_enum": { - "match": "(enum)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.enum.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "parameter_or_maybe_value": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\w)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "name": "meta.parameter.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#function_pointer_parameter" - }, - { - "include": "#memory_operators" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "#curly_initializer" - }, - { - "include": "#decltype" - }, - { - "include": "#vararg_ellipses" - }, - { - "match": "((?:((?:(?:volatile)|(?:register)|(?:restrict)|(?:static)|(?:extern)|(?:const)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))+)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:\\s)*+(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=,|\\)|=)", - "captures": { - "1": { - "patterns": [ - { - "include": "#storage_types" - } - ] - }, - "2": { - "name": "storage.modifier.specifier.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "name": "storage.type.primitive.cpp storage.type.built-in.primitive.cpp" - }, - "12": { - "name": "storage.type.cpp storage.type.built-in.cpp" - }, - "13": { - "name": "support.type.posix-reserved.pthread.cpp support.type.built-in.posix-reserved.pthread.cpp" - }, - "14": { - "name": "support.type.posix-reserved.cpp support.type.built-in.posix-reserved.cpp" - }, - "15": { - "name": "entity.name.type.parameter.cpp" - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#storage_types" - }, - { - "include": "#function_call" - }, - { - "include": "#scope_resolution_parameter_inner_generated" - }, - { - "match": "(?:(?:struct)|(?:class)|(?:union)|(?:enum))", - "name": "storage.type.$0.cpp" - }, - { - "begin": "(?<==)", - "end": "(?:(?=\\))|(,))", - "beginCaptures": {}, - "endCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=(?:\\)|,|\\[|=|\\/\\/|(?:(?:\\n)|$)))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "variable.parameter.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#attributes_context" - }, - { - "begin": "\\[", - "end": "\\]", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.square.array.type.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.array.type.cpp" - } - }, - "name": "meta.bracket.square.array.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*))", - "captures": { - "0": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "7": { - "name": "comment.block.cpp" - }, - "8": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "include": "#evaluation_context" - } - ] - }, - "parameter_struct": { - "match": "(struct)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.struct.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "parameter_union": { - "match": "(union)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:\\[((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\]((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=,|\\)|\\n)", - "captures": { - "1": { - "name": "storage.type.union.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.parameter.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "variable.other.object.declare.cpp" - }, - "15": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "16": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "18": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "19": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "20": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "parentheses": { - "begin": "\\(", - "end": "\\)", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.cpp" - } - }, - "name": "meta.parens.cpp", - "patterns": [ - { - "include": "#over_qualified_types" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma\\b", - "end": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?pragma(?:\\s)+mark)(?:\\s)+(.*)", - "captures": { - "1": { - "name": "keyword.control.directive.pragma.pragma-mark.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "punctuation.definition.directive.cpp" - }, - "5": { - "name": "entity.name.tag.pragma-mark.cpp" - } - }, - "name": "meta.preprocessor.pragma.cpp" - }, - "predefined_macros": { - "patterns": [ - { - "match": "\\b(__cplusplus|__DATE__|__FILE__|__LINE__|__STDC__|__STDC_HOSTED__|__STDC_NO_COMPLEX__|__STDC_VERSION__|__STDCPP_THREADS__|__TIME__|NDEBUG|__OBJC__|__ASSEMBLER__|__ATOM__|__AVX__|__AVX2__|_CHAR_UNSIGNED|__CLR_VER|_CONTROL_FLOW_GUARD|__COUNTER__|__cplusplus_cli|__cplusplus_winrt|_CPPRTTI|_CPPUNWIND|_DEBUG|_DLL|__FUNCDNAME__|__FUNCSIG__|__FUNCTION__|_INTEGRAL_MAX_BITS|__INTELLISENSE__|_ISO_VOLATILE|_KERNEL_MODE|_M_AMD64|_M_ARM|_M_ARM_ARMV7VE|_M_ARM_FP|_M_ARM64|_M_CEE|_M_CEE_PURE|_M_CEE_SAFE|_M_FP_EXCEPT|_M_FP_FAST|_M_FP_PRECISE|_M_FP_STRICT|_M_IX86|_M_IX86_FP|_M_X64|_MANAGED|_MSC_BUILD|_MSC_EXTENSIONS|_MSC_FULL_VER|_MSC_VER|_MSVC_LANG|__MSVC_RUNTIME_CHECKS|_MT|_NATIVE_WCHAR_T_DEFINED|_OPENMP|_PREFAST|__TIMESTAMP__|_VC_NO_DEFAULTLIB|_WCHAR_T_DEFINED|_WIN32|_WIN64|_WINRT_DLL|_ATL_VER|_MFC_VER|__GFORTRAN__|__GNUC__|__GNUC_MINOR__|__GNUC_PATCHLEVEL__|__GNUG__|__STRICT_ANSI__|__BASE_FILE__|__INCLUDE_LEVEL__|__ELF__|__VERSION__|__OPTIMIZE__|__OPTIMIZE_SIZE__|__NO_INLINE__|__GNUC_STDC_INLINE__|__CHAR_UNSIGNED__|__WCHAR_UNSIGNED__|__REGISTER_PREFIX__|__REGISTER_PREFIX__|__SIZE_TYPE__|__PTRDIFF_TYPE__|__WCHAR_TYPE__|__WINT_TYPE__|__INTMAX_TYPE__|__UINTMAX_TYPE__|__SIG_ATOMIC_TYPE__|__INT8_TYPE__|__INT16_TYPE__|__INT32_TYPE__|__INT64_TYPE__|__UINT8_TYPE__|__UINT16_TYPE__|__UINT32_TYPE__|__UINT64_TYPE__|__INT_LEAST8_TYPE__|__INT_LEAST16_TYPE__|__INT_LEAST32_TYPE__|__INT_LEAST64_TYPE__|__UINT_LEAST8_TYPE__|__UINT_LEAST16_TYPE__|__UINT_LEAST32_TYPE__|__UINT_LEAST64_TYPE__|__INT_FAST8_TYPE__|__INT_FAST16_TYPE__|__INT_FAST32_TYPE__|__INT_FAST64_TYPE__|__UINT_FAST8_TYPE__|__UINT_FAST16_TYPE__|__UINT_FAST32_TYPE__|__UINT_FAST64_TYPE__|__INTPTR_TYPE__|__UINTPTR_TYPE__|__CHAR_BIT__|__SCHAR_MAX__|__WCHAR_MAX__|__SHRT_MAX__|__INT_MAX__|__LONG_MAX__|__LONG_LONG_MAX__|__WINT_MAX__|__SIZE_MAX__|__PTRDIFF_MAX__|__INTMAX_MAX__|__UINTMAX_MAX__|__SIG_ATOMIC_MAX__|__INT8_MAX__|__INT16_MAX__|__INT32_MAX__|__INT64_MAX__|__UINT8_MAX__|__UINT16_MAX__|__UINT32_MAX__|__UINT64_MAX__|__INT_LEAST8_MAX__|__INT_LEAST16_MAX__|__INT_LEAST32_MAX__|__INT_LEAST64_MAX__|__UINT_LEAST8_MAX__|__UINT_LEAST16_MAX__|__UINT_LEAST32_MAX__|__UINT_LEAST64_MAX__|__INT_FAST8_MAX__|__INT_FAST16_MAX__|__INT_FAST32_MAX__|__INT_FAST64_MAX__|__UINT_FAST8_MAX__|__UINT_FAST16_MAX__|__UINT_FAST32_MAX__|__UINT_FAST64_MAX__|__INTPTR_MAX__|__UINTPTR_MAX__|__WCHAR_MIN__|__WINT_MIN__|__SIG_ATOMIC_MIN__|__SCHAR_WIDTH__|__SHRT_WIDTH__|__INT_WIDTH__|__LONG_WIDTH__|__LONG_LONG_WIDTH__|__PTRDIFF_WIDTH__|__SIG_ATOMIC_WIDTH__|__SIZE_WIDTH__|__WCHAR_WIDTH__|__WINT_WIDTH__|__INT_LEAST8_WIDTH__|__INT_LEAST16_WIDTH__|__INT_LEAST32_WIDTH__|__INT_LEAST64_WIDTH__|__INT_FAST8_WIDTH__|__INT_FAST16_WIDTH__|__INT_FAST32_WIDTH__|__INT_FAST64_WIDTH__|__INTPTR_WIDTH__|__INTMAX_WIDTH__|__SIZEOF_INT__|__SIZEOF_LONG__|__SIZEOF_LONG_LONG__|__SIZEOF_SHORT__|__SIZEOF_POINTER__|__SIZEOF_FLOAT__|__SIZEOF_DOUBLE__|__SIZEOF_LONG_DOUBLE__|__SIZEOF_SIZE_T__|__SIZEOF_WCHAR_T__|__SIZEOF_WINT_T__|__SIZEOF_PTRDIFF_T__|__BYTE_ORDER__|__ORDER_LITTLE_ENDIAN__|__ORDER_BIG_ENDIAN__|__ORDER_PDP_ENDIAN__|__FLOAT_WORD_ORDER__|__DEPRECATED|__EXCEPTIONS|__GXX_RTTI|__USING_SJLJ_EXCEPTIONS__|__GXX_EXPERIMENTAL_CXX0X__|__GXX_WEAK__|__NEXT_RUNTIME__|__LP64__|_LP64|__SSP__|__SSP_ALL__|__SSP_STRONG__|__SSP_EXPLICIT__|__SANITIZE_ADDRESS__|__SANITIZE_THREAD__|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_1|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_2|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_4|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_8|__GCC_HAVE_SYNC_COMPARE_AND_SWAP_16|__HAVE_SPECULATION_SAFE_VALUE|__GCC_HAVE_DWARF2_CFI_ASM|__FP_FAST_FMA|__FP_FAST_FMAF|__FP_FAST_FMAL|__FP_FAST_FMAF16|__FP_FAST_FMAF32|__FP_FAST_FMAF64|__FP_FAST_FMAF128|__FP_FAST_FMAF32X|__FP_FAST_FMAF64X|__FP_FAST_FMAF128X|__GCC_IEC_559|__GCC_IEC_559_COMPLEX|__NO_MATH_ERRNO__|__has_builtin|__has_feature|__has_extension|__has_cpp_attribute|__has_c_attribute|__has_attribute|__has_declspec_attribute|__is_identifier|__has_include|__has_include_next|__has_warning|__BASE_FILE__|__FILE_NAME__|__clang__|__clang_major__|__clang_minor__|__clang_patchlevel__|__clang_version__|__fp16|_Float16)\\b", - "captures": { - "1": { - "name": "entity.name.other.preprocessor.macro.predefined.$1.cpp" - } - } - }, - { - "match": "\\b__([A-Z_]+)__\\b", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$1.cpp" - } - ] - }, - "preprocessor_conditional_context": { - "patterns": [ - { - "include": "#preprocessor_conditional_defined" - }, - { - "include": "#comments" - }, - { - "include": "#language_constants" - }, - { - "include": "#string_context" - }, - { - "include": "#d9bc4796b0b_preprocessor_number_literal" - }, - { - "include": "#operators" - }, - { - "include": "#predefined_macros" - }, - { - "include": "#macro_name" - }, - { - "include": "#line_continuation_character" - } - ] - }, - "preprocessor_conditional_defined": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?:(?:ifndef|ifdef)|if))", - "end": "^(?!\\s*+#\\s*(?:else|endif))", - "beginCaptures": { - "0": { - "name": "keyword.control.directive.conditional.$6.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "punctuation.definition.directive.cpp" - }, - "6": {} - }, - "endCaptures": {}, - "patterns": [ - { - "begin": "\\G(?<=ifndef|ifdef|if)", - "end": "(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "punctuation.definition.directive.cpp" - } - }, - "name": "keyword.control.directive.$4.cpp" - }, - "preprocessor_context": { - "patterns": [ - { - "include": "#pragma_mark" - }, - { - "include": "#pragma" - }, - { - "include": "#include" - }, - { - "include": "#line" - }, - { - "include": "#diagnostic" - }, - { - "include": "#undef" - }, - { - "include": "#preprocessor_conditional_range" - }, - { - "include": "#single_line_macro" - }, - { - "include": "#macro" - }, - { - "include": "#preprocessor_conditional_standalone" - }, - { - "include": "#macro_argument" - } - ] - }, - "qualified_type": { - "match": "\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<11>?)+>)?(?![\\w<:.])", - "captures": { - "0": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "1": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "6": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - }, - "name": "meta.qualified_type.cpp" - }, - "qualifiers_and_specifiers_post_parameters": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?:((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "storage.modifier.specifier.functional.post-parameters.$3.cpp" - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "scope_resolution": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_call": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_function_call_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_call_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_call_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.function.call.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp" - } - } - }, - "scope_resolution_function_definition": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_definition_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.function.definition.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp" - } - } - }, - "scope_resolution_function_definition_operator_overload": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_operator_overload_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_function_definition_operator_overload_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_function_definition_operator_overload_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.function.definition.operator-overload.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.operator-overload.cpp" - } - } - }, - "scope_resolution_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - } - } - }, - "scope_resolution_namespace_alias": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_alias_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_namespace_alias_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_namespace_alias_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.namespace.alias.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.alias.cpp" - } - } - }, - "scope_resolution_namespace_block": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_block_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_namespace_block_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_namespace_block_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.namespace.block.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.block.cpp" - } - } - }, - "scope_resolution_namespace_using": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_namespace_using_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_namespace_using_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_namespace_using_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.namespace.using.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.namespace.using.cpp" - } - } - }, - "scope_resolution_parameter": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_parameter_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_parameter_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_parameter_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.parameter.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.parameter.cpp" - } - } - }, - "scope_resolution_template_call": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_template_call_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_template_call_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_template_call_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.template.call.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.call.cpp" - } - } - }, - "scope_resolution_template_definition": { - "match": "(::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<3>?)+>)(?:\\s)*+)?::)*\\s*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#scope_resolution_template_definition_inner_generated" - } - ] - }, - "1": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - } - }, - "scope_resolution_template_definition_inner_generated": { - "match": "((::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?::)*\\s*+)((?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<7>?)+>)(?:\\s)*+)?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution_template_definition_inner_generated" - } - ] - }, - "2": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "4": {}, - "5": { - "name": "entity.name.scope-resolution.template.definition.cpp" - }, - "6": { - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_range" - } - ] - }, - "7": {}, - "8": { - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.template.definition.cpp" - } - } - }, - "semicolon": { - "match": ";", - "name": "punctuation.terminator.statement.cpp" - }, - "simple_type": { - "match": "(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<12>?)+>)?(?![\\w<:.]))(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?", - "captures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": {}, - "13": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "14": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "15": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "single_line_macro": { - "match": "^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))#define.*(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "sizeof_operator": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "sizeof_variadic_operator": { - "begin": "(\\bsizeof\\.\\.\\.)((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.sizeof.variadic.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.sizeof.variadic.cpp" - } - }, - "contentName": "meta.arguments.operator.sizeof.variadic", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "square_brackets": { - "name": "meta.bracket.square.access", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.other.object" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square" - } - }, - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "standard_declares": { - "patterns": [ - { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.struct.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.union.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.enum.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.enum.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.class.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.class.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - } - ] - }, - "static_assert": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "keyword.other.static_assert.cpp" - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "name": "punctuation.section.arguments.begin.bracket.round.static_assert.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.static_assert.cpp" - } - }, - "patterns": [ - { - "begin": "(,)(?:(?:\\s)+)?(?=(?:L|u8|u|U(?:(?:\\s)+)?\\\")?)", - "end": "(?=\\))", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.comma.cpp" - } - }, - "endCaptures": {}, - "name": "meta.static_assert.message.cpp", - "patterns": [ - { - "include": "#string_context" - } - ] - }, - { - "include": "#evaluation_context" - } - ] - }, - "std_space": { - "match": "(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))", - "captures": { - "0": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "1": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "storage_specifiers": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "storage.modifier.specifier.$3.cpp" - } - } - }, - "storage_types": { - "patterns": [ - { - "include": "#storage_specifiers" - }, - { - "include": "#inline_builtin_storage_type" - }, - { - "include": "#decltype" - }, - { - "include": "#typename" - } - ] - }, - "string_context": { - "patterns": [ - { - "begin": "((?:u|u8|U|L)?)\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cpp" - }, - "1": { - "name": "meta.encoding.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cpp" - } - }, - "name": "string.quoted.double.cpp", - "patterns": [ - { - "match": "(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8})", - "name": "constant.character.escape.cpp" - }, - { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.cpp" - }, - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.cpp" - }, - { - "match": "(?:(\\\\x0*[0-9a-fA-F]{2}(?![0-9a-fA-F]))|((?:\\\\x[0-9a-fA-F]*|\\\\x)))", - "captures": { - "1": { - "name": "constant.character.escape.cpp" - }, - "2": { - "name": "invalid.illegal.unknown-escape.cpp" - } - } - }, - { - "include": "#string_escapes_context_c" - } - ] - }, - { - "begin": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.struct.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" - } - }, - "name": "meta.head.struct.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, - "name": "meta.body.struct.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.struct.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "struct_declare": { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.struct.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.struct.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "switch_conditional_parentheses": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.cpp" - } - }, - "name": "meta.conditional.switch.cpp", - "patterns": [ - { - "include": "#evaluation_context" - }, - { - "include": "#c_conditional_context" - } - ] - }, - "switch_statement": { - "begin": "((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?|\\?\\?>)|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.switch.cpp" - }, - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "5": { - "name": "keyword.control.switch.cpp" - } - }, - "endCaptures": {}, - "name": "meta.block.switch.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.switch.cpp" - } - }, - "name": "meta.head.switch.cpp", - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.switch.cpp" - } - }, - "name": "meta.body.switch.cpp", - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$self" - }, - { - "include": "#block_innards" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.switch.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "template_argument_defaulted": { - "match": "(?<=<|,)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)*)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?([=])", - "captures": { - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "name": "entity.name.type.template.cpp" - }, - "3": { - "name": "keyword.operator.assignment.cpp" - } - } - }, - "template_call_context": { - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#template_call_range" - }, - { - "include": "#storage_types" - }, - { - "include": "#language_constants" - }, - { - "include": "#scope_resolution_template_call_inner_generated" - }, - { - "include": "#operators" - }, - { - "include": "#number_literal" - }, - { - "include": "#string_context" - }, - { - "include": "#comma_in_template_argument" - }, - { - "include": "#qualified_type" - } - ] - }, - "template_call_innards": { - "match": "((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<1>?)+>)(?:\\s)*+", - "captures": { - "0": { - "patterns": [ - { - "include": "#template_call_range" - } - ] - } - }, - "name": "meta.template.call.cpp" - }, - "template_call_range": { - "begin": "<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - "template_definition": { - "begin": "(?", - "beginCaptures": { - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "name": "punctuation.section.angle-brackets.start.template.definition.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.definition.cpp" - } - }, - "name": "meta.template.definition.cpp", - "patterns": [ - { - "begin": "(?<=\\w)(?:(?:\\s)+)?<", - "end": ">", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "include": "#template_definition_context" - } - ] - }, - "template_definition_argument": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)|((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*(?:\\s)+)+)((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))|((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)(?:(?:\\s)+)?(\\.\\.\\.)(?:(?:\\s)+)?((?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*))(?:(?:\\s)+)?(?:(,)|(?=>|$))", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "storage.type.template.argument.$3.cpp" - }, - "4": { - "patterns": [ - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "storage.type.template.argument.$0.cpp" - } - ] - }, - "5": { - "name": "entity.name.type.template.cpp" - }, - "6": { - "name": "storage.type.template.cpp" - }, - "7": { - "name": "punctuation.vararg-ellipses.template.definition.cpp" - }, - "8": { - "name": "entity.name.type.template.cpp" - }, - "9": { - "name": "punctuation.separator.delimiter.comma.template.argument.cpp" - } - } - }, - "template_definition_context": { - "patterns": [ - { - "include": "#scope_resolution_template_definition_inner_generated" - }, - { - "include": "#template_definition_argument" - }, - { - "include": "#template_argument_defaulted" - }, - { - "include": "#template_call_innards" - }, - { - "include": "#evaluation_context" - } - ] - }, - "template_isolated_definition": { - "match": "(?(?:(?:\\s)+)?$)", - "captures": { - "1": { - "name": "storage.type.template.cpp" - }, - "2": { - "name": "punctuation.section.angle-brackets.start.template.definition.cpp" - }, - "3": { - "name": "meta.template.definition.cpp", - "patterns": [ - { - "include": "#template_definition_context" - } - ] - }, - "4": { - "name": "punctuation.section.angle-brackets.end.template.definition.cpp" - } - } - }, - "ternary_operator": { - "begin": "\\?", - "end": ":", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.cpp" - } - }, - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#string_context" - }, - { - "include": "#number_literal" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#predefined_macros" - }, - { - "include": "#operators" - }, - { - "include": "#memory_operators" - }, - { - "include": "#wordlike_operators" - }, - { - "include": "#type_casting_operators" - }, - { - "include": "#control_flow_keywords" - }, - { - "include": "#exception_keywords" - }, - { - "include": "#the_this_keyword" - }, - { - "include": "#language_constants" - }, - { - "include": "#builtin_storage_type_initilizer" - }, - { - "include": "#qualifiers_and_specifiers_post_parameters" - }, - { - "include": "#functional_specifiers_pre_parameters" - }, - { - "include": "#storage_types" - }, - { - "include": "#lambdas" - }, - { - "include": "#attributes_context" - }, - { - "include": "#parentheses" - }, - { - "include": "#function_call" - }, - { - "include": "#scope_resolution_inner_generated" - }, - { - "include": "#square_brackets" - }, - { - "include": "#semicolon" - }, - { - "include": "#comma" - } - ], - "applyEndPatternLast": 1 - }, - "the_this_keyword": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "variable.language.this.cpp" - } - } - }, - "type_alias": { - "match": "(using)(?:(?:\\s)+)?(?!namespace)(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))(?:(?:\\s)+)?(\\=)(?:(?:\\s)+)?((?:typename)?)(?:(?:\\s)+)?((?:(?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<29>?)+>)?(?![\\w<:.]))|(.*(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)?(?:(?:\\s)+)?(?:(;)|\\n)", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - }, - "2": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "14": { - "name": "keyword.operator.assignment.cpp" - }, - "15": { - "name": "keyword.other.typename.cpp" - }, - "16": { - "patterns": [ - { - "include": "#storage_specifiers" - } - ] - }, - "17": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "18": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "19": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "22": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "23": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "24": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "30": { - "name": "meta.declaration.type.alias.value.unknown.cpp", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "31": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "32": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "33": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "34": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "35": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "36": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "37": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "38": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "39": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "40": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "41": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.declaration.type.alias.cpp" - }, - "type_casting_operators": { - "match": "((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "3": { - "name": "keyword.operator.wordlike.cpp keyword.operator.cast.$3.cpp" - } - } - }, - "typedef_class": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.class.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.class.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.class.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.class.cpp" - } - }, - "name": "meta.head.class.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.class.cpp" - } - }, - "name": "meta.body.class.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.class.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_function_pointer": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)(?:\\s)*+)?::)*+)?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<18>?)+>)?(?![\\w<:.]))(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()(\\*)(?:(?:\\s)+)?((?:(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*)?)(?:(?:\\s)+)?(?:(\\[)(\\w*)(\\])(?:(?:\\s)+)?)*(\\))(?:(?:\\s)+)?(\\()", - "end": "(\\))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=[{=,);>]|\\n)(?!\\()", - "beginCaptures": { - "1": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "3": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "4": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "5": { - "name": "comment.block.cpp" - }, - "6": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "20": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "21": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "22": { - "name": "comment.block.cpp" - }, - "23": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "24": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "25": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "26": { - "name": "comment.block.cpp" - }, - "27": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "28": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "29": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "30": { - "name": "comment.block.cpp" - }, - "31": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "32": { - "name": "punctuation.section.parens.begin.bracket.round.function.pointer.cpp" - }, - "33": { - "name": "punctuation.definition.function.pointer.dereference.cpp" - }, - "34": { - "name": "entity.name.type.alias.cpp entity.name.type.pointer.function.cpp" - }, - "35": { - "name": "punctuation.definition.begin.bracket.square.cpp" - }, - "36": { - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "37": { - "name": "punctuation.definition.end.bracket.square.cpp" - }, - "38": { - "name": "punctuation.section.parens.end.bracket.round.function.pointer.cpp" - }, - "39": { - "name": "punctuation.section.parameters.begin.bracket.round.function.pointer.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.section.parameters.end.bracket.round.function.pointer.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "patterns": [ - { - "include": "#function_parameter_context" - } - ] - } - ] - }, - "typedef_struct": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.struct.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.struct.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.struct.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.struct.cpp" - } - }, - "name": "meta.head.struct.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.struct.cpp" - } - }, - "name": "meta.body.struct.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.struct.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typedef_union": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.union.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.union.cpp" - } - }, - "name": "meta.head.union.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, - "name": "meta.body.union.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.union.cpp", - "patterns": [ - { - "match": "(((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "8": { - "name": "comment.block.cpp" - }, - "9": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "12": { - "name": "comment.block.cpp" - }, - "13": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "14": { - "name": "entity.name.type.alias.cpp" - } - } - }, - { - "match": "," - } - ] - } - ] - } - ] - }, - "typeid_operator": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\()", - "end": "\\)", - "beginCaptures": { - "1": { - "name": "keyword.operator.functionlike.cpp keyword.operator.typeid.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.operator.typeid.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.operator.typeid.cpp" - } - }, - "contentName": "meta.arguments.operator.typeid", - "patterns": [ - { - "include": "#evaluation_context" - } - ] - }, - "typename": { - "match": "(((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(\\s*+((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?:(?:(?:unsigned)|(?:signed)|(?:short)|(?:long))|(?:(?:struct)|(?:class)|(?:union)|(?:enum)))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*((?:::)?(?:(?!\\b(?:__has_cpp_attribute|reinterpret_cast|atomic_noexcept|atomic_commit|atomic_cancel|__has_include|synchronized|dynamic_cast|thread_local|static_cast|const_cast|co_return|constexpr|constexpr|constexpr|co_return|protected|namespace|consteval|noexcept|decltype|template|operator|noexcept|co_yield|co_await|reflexpr|continue|co_await|co_yield|requires|volatile|register|restrict|explicit|volatile|noexcept|typename|default|_Pragma|mutable|include|concept|alignas|virtual|alignof|__asm__|defined|mutable|typedef|warning|private|and_eq|define|pragma|typeid|switch|bitand|return|ifndef|export|struct|sizeof|module|static|public|extern|inline|friend|delete|xor_eq|import|not_eq|class|compl|bitor|throw|or_eq|while|catch|break|union|const|const|endif|ifdef|undef|error|using|else|line|goto|else|elif|this|enum|case|new|asm|not|try|for|and|xor|or|if|do|if)\\b)(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)(?:\\s)*+)?::)*+)?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?!(?:(?:transaction_safe_dynamic)|(?:__has_cpp_attribute)|(?:reinterpret_cast)|(?:transaction_safe)|(?:atomic_noexcept)|(?:atomic_commit)|(?:atomic_cancel)|(?:__has_include)|(?:dynamic_cast)|(?:synchronized)|(?:thread_local)|(?:static_cast)|(?:const_cast)|(?:constexpr)|(?:consteval)|(?:co_return)|(?:co_return)|(?:constexpr)|(?:protected)|(?:constexpr)|(?:namespace)|(?:noexcept)|(?:typename)|(?:decltype)|(?:template)|(?:operator)|(?:noexcept)|(?:co_yield)|(?:co_await)|(?:continue)|(?:co_await)|(?:co_yield)|(?:volatile)|(?:register)|(?:restrict)|(?:explicit)|(?:override)|(?:volatile)|(?:reflexpr)|(?:noexcept)|(?:requires)|(?:alignas)|(?:typedef)|(?:nullptr)|(?:alignof)|(?:mutable)|(?:concept)|(?:virtual)|(?:defined)|(?:__asm__)|(?:include)|(?:_Pragma)|(?:mutable)|(?:default)|(?:warning)|(?:private)|(?:module)|(?:return)|(?:not_eq)|(?:xor_eq)|(?:and_eq)|(?:ifndef)|(?:pragma)|(?:export)|(?:import)|(?:sizeof)|(?:static)|(?:delete)|(?:public)|(?:define)|(?:extern)|(?:inline)|(?:typeid)|(?:switch)|(?:friend)|(?:bitand)|(?:false)|(?:compl)|(?:bitor)|(?:throw)|(?:or_eq)|(?:while)|(?:catch)|(?:break)|(?:const)|(?:final)|(?:const)|(?:endif)|(?:ifdef)|(?:undef)|(?:error)|(?:using)|(?:audit)|(?:axiom)|(?:line)|(?:else)|(?:elif)|(?:true)|(?:NULL)|(?:case)|(?:goto)|(?:else)|(?:this)|(?:new)|(?:asm)|(?:not)|(?:and)|(?:xor)|(?:try)|(?:for)|(?:if)|(?:do)|(?:or)|(?:if))\\b)(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*\\b((?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<17>?)+>)?(?![\\w<:.]))", - "captures": { - "1": { - "name": "storage.modifier.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "5": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "6": { - "name": "meta.qualified_type.cpp", - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp" - }, - { - "match": "(?", - "beginCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.begin.template.call.cpp" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.angle-brackets.end.template.call.cpp" - } - }, - "name": "meta.template.call.cpp", - "patterns": [ - { - "include": "#template_call_context" - } - ] - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.type.cpp" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "patterns": [ - { - "match": "::", - "name": "punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.type.cpp" - }, - { - "match": "(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "17": {} - } - }, - "undef": { - "match": "(^((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(#)(?:(?:\\s)+)?undef\\b)((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "punctuation.definition.directive.cpp" - }, - "5": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "6": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "7": { - "name": "entity.name.function.preprocessor.cpp" - } - }, - "name": "meta.preprocessor.undef.cpp" - }, - "union_block": { - "begin": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:(?={)|(?:((?:(?:(?:\\[\\[.*?\\]\\]|__attribute(?:__)?\\s*\\(\\s*\\(.*?\\)\\s*\\))|__declspec\\(.*?\\))|alignas\\(.*?\\))(?!\\)))((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?((?:(?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*+)?(?:((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(:(?!:)))?)", - "end": "(?:(?:(?<=\\}|%>|\\?\\?>)(?:(?:\\s)+)?(;)|(;))|(?=[;>\\[\\]=]))", - "beginCaptures": { - "0": { - "name": "meta.head.union.cpp" - }, - "1": { - "name": "storage.type.$1.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#attributes_context" - }, - { - "include": "#number_literal" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "11": { - "patterns": [ - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))", - "captures": { - "1": { - "name": "storage.type.modifier.final.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?:((?(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))?(?=:|{|$)", - "captures": { - "1": { - "name": "entity.name.type.union.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "4": { - "name": "comment.block.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "6": { - "name": "storage.type.modifier.final.cpp" - }, - "7": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "8": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "9": { - "name": "comment.block.cpp" - }, - "10": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - }, - { - "match": "DLLEXPORT", - "name": "entity.name.other.preprocessor.macro.predefined.DLLEXPORT.cpp" - }, - { - "match": "(?:[a-zA-Z_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))(?:[a-zA-Z0-9_]|(?:\\\\u[0-9a-fA-F]{4}|\\\\U[0-9a-fA-F]{8}))*", - "name": "entity.name.other.preprocessor.macro.predefined.probably.$0.cpp" - } - ] - }, - "12": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "13": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "14": { - "name": "comment.block.cpp" - }, - "15": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "16": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "17": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "18": { - "name": "comment.block.cpp" - }, - "19": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - }, - "20": { - "name": "punctuation.separator.colon.inheritance.cpp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.cpp" - }, - "2": { - "name": "punctuation.terminator.statement.cpp" - } - }, - "name": "meta.block.union.cpp", - "patterns": [ - { - "begin": "\\G ?", - "end": "(?:\\{|<%|\\?\\?<|(?=;))", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.union.cpp" - } - }, - "name": "meta.head.union.cpp", - "patterns": [ - { - "include": "#ever_present_context" - }, - { - "include": "#inheritance_context" - }, - { - "include": "#template_call_range" - } - ] - }, - { - "begin": "(?<=\\{|<%|\\?\\?<)", - "end": "\\}|%>|\\?\\?>", - "beginCaptures": {}, - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.union.cpp" - } - }, - "name": "meta.body.union.cpp", - "patterns": [ - { - "include": "#function_pointer" - }, - { - "include": "#static_assert" - }, - { - "include": "#constructor_inline" - }, - { - "include": "#destructor_inline" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(?<=\\}|%>|\\?\\?>)[\\s]*", - "end": "[\\s]*(?=;)", - "beginCaptures": {}, - "endCaptures": {}, - "name": "meta.tail.union.cpp", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "union_declare": { - "match": "((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))?(?:(?:&|(?:\\*))((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z))))*(?:&|(?:\\*)))?((?:((?:(?>(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))\\b(?!override\\W|override\\$|final\\W|final\\$)((?(?:\\s)+)|\\/\\*(?:[^\\*]|(?:\\*)++[^\\/])*+(?:\\*)++\\/)+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))(?=\\S)(?![:{a-zA-Z])", - "captures": { - "1": { - "name": "storage.type.union.declare.cpp" - }, - "2": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "3": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "4": { - "name": "entity.name.type.union.cpp" - }, - "5": { - "patterns": [ - { - "match": "\\*", - "name": "storage.modifier.pointer.cpp" - }, - { - "match": "(?:\\&((?:(?:(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))+)|(?:\\b)|(?=\\W)|(?<=\\W)|(?:\\A)|(?:\\Z)))){2,}\\&", - "captures": { - "1": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "2": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "3": { - "name": "comment.block.cpp" - }, - "4": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - }, - "name": "invalid.illegal.reference-type.cpp" - }, - { - "match": "\\&", - "name": "storage.modifier.reference.cpp" - } - ] - }, - "6": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "7": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "8": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "9": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "10": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "11": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - }, - "12": { - "name": "variable.other.object.declare.cpp" - }, - "13": { - "patterns": [ - { - "include": "#inline_comment" - } - ] - }, - "14": { - "patterns": [ - { - "match": "(?:(?>(?:\\s)+)|(\\/\\*)((?:[^\\*]|(?:\\*)++[^\\/])*+((?:\\*)++\\/)))", - "captures": { - "1": { - "name": "comment.block.cpp punctuation.definition.comment.begin.cpp" - }, - "2": { - "name": "comment.block.cpp" - }, - "3": { - "patterns": [ - { - "match": "\\*\\/", - "name": "comment.block.cpp punctuation.definition.comment.end.cpp" - }, - { - "match": "\\*", - "name": "comment.block.cpp" - } - ] - } - } - } - ] - } - } - }, - "using_name": { - "match": "(using)(?:\\s)+(?!namespace\\b)", - "captures": { - "1": { - "name": "keyword.other.using.directive.cpp" - } - } - }, - "using_namespace": { - "begin": "(?]*+|\"(?:[^\"]*|\\\\\")\")|'(?:[^']*|\\\\')')\\g<6>?)+>)(?:\\s)*+)?::)*\\s*+)?((?, pugi::xml_node, std::less >, std::allocator, pugi::xml_node> > > > >::type dnode - -std::_Rb_tree_iterator, pugi::xml_node, std::less >, std::allocator, pugi::xml_node> > > > > > dnode_it = dnodes_.find(uid.position) diff --git a/extensions/cpp/test/colorize-fixtures/test.c b/extensions/cpp/test/colorize-fixtures/test.c deleted file mode 100644 index 1fead178518..00000000000 --- a/extensions/cpp/test/colorize-fixtures/test.c +++ /dev/null @@ -1,30 +0,0 @@ -/* C Program to find roots of a quadratic equation when coefficients are entered by user. */ -/* Library function sqrt() computes the square root. */ - -#include -#include /* This is needed to use sqrt() function.*/ -int main() -{ - float a, b, c, determinant, r1,r2, real, imag; - printf("Enter coefficients a, b and c: "); - scanf("%f%f%f",&a,&b,&c); - determinant=b*b-4*a*c; - if (determinant>0) - { - r1= (-b+sqrt(determinant))/(2*a); - r2= (-b-sqrt(determinant))/(2*a); - printf("Roots are: %.2f and %.2f",r1 , r2); - } - else if (determinant==0) - { - r1 = r2 = -b/(2*a); - printf("Roots are: %.2f and %.2f", r1, r2); - } - else - { - real= -b/(2*a); - imag = sqrt(-determinant)/(2*a); - printf("Roots are: %.2f+%.2fi and %.2f-%.2fi", real, imag, real, imag); - } - return 0; -} \ No newline at end of file diff --git a/extensions/cpp/test/colorize-fixtures/test.cc b/extensions/cpp/test/colorize-fixtures/test.cc deleted file mode 100644 index 578c2e44685..00000000000 --- a/extensions/cpp/test/colorize-fixtures/test.cc +++ /dev/null @@ -1,27 +0,0 @@ -#if B4G_DEBUG_CHECK - fprintf(stderr,"num_candidate_ret=%d:", num_candidate); - for(int i=0;i o(new O); - // sadness. - - sprintf(options, "STYLE=Keramik;TITLE=%s;THEME=%s", ...); -} - - -int main2() { - printf(";"); - // the rest of - asm("movw $0x38, %ax; ltr %ax"); - fn("{};"); - - // the rest of -} \ No newline at end of file diff --git a/extensions/cpp/test/colorize-fixtures/test.cpp b/extensions/cpp/test/colorize-fixtures/test.cpp deleted file mode 100644 index 13ec47a554c..00000000000 --- a/extensions/cpp/test/colorize-fixtures/test.cpp +++ /dev/null @@ -1,33 +0,0 @@ -// classes example -#include -using namespace std; - -#define EXTERN_C extern "C" - -class Rectangle { - int width, height; - public: - void set_values (int,int); - int area() {return width*height;} -}; - -void Rectangle::set_values (int x, int y) { - width = x; - height = y; -} - -long double operator "" _w(long double); -#define MY_MACRO(a, b) - -int main () { - 1.2_w; // calls operator "" _w(1.2L) - asm("movl %a %b"); - MY_MACRO(1, 2); - Rectangle rect; - rect.set_values (3,4); - cout << "area: " << rect.area(); - Task::links_to; - int t = 2; - if (t > 0) puts("\n*************************************************"); - return 0; -} diff --git a/extensions/cpp/test/colorize-results/test-23630_cpp.json b/extensions/cpp/test/colorize-results/test-23630_cpp.json deleted file mode 100644 index 4ffc7f01f98..00000000000 --- a/extensions/cpp/test/colorize-results/test-23630_cpp.json +++ /dev/null @@ -1,123 +0,0 @@ -[ - { - "c": "#", - "t": "source.cpp keyword.control.directive.conditional.ifndef.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "ifndef", - "t": "source.cpp keyword.control.directive.conditional.ifndef.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.conditional.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "_UCRT", - "t": "source.cpp meta.preprocessor.conditional.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "#", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "define", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "_UCRT", - "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "#", - "t": "source.cpp keyword.control.directive.endif.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "endif", - "t": "source.cpp keyword.control.directive.endif.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - } -] \ No newline at end of file diff --git a/extensions/cpp/test/colorize-results/test-23850_cpp.json b/extensions/cpp/test/colorize-results/test-23850_cpp.json deleted file mode 100644 index a97f9612665..00000000000 --- a/extensions/cpp/test/colorize-results/test-23850_cpp.json +++ /dev/null @@ -1,112 +0,0 @@ -[ - { - "c": "#", - "t": "source.cpp keyword.control.directive.conditional.ifndef.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "ifndef", - "t": "source.cpp keyword.control.directive.conditional.ifndef.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.conditional.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "_UCRT", - "t": "source.cpp meta.preprocessor.conditional.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "#", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "define", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "_UCRT", - "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "#", - "t": "source.cpp keyword.control.directive.endif.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "endif", - "t": "source.cpp keyword.control.directive.endif.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - } -] \ No newline at end of file diff --git a/extensions/cpp/test/colorize-results/test-78769_cpp.json b/extensions/cpp/test/colorize-results/test-78769_cpp.json deleted file mode 100644 index 718b2a715ae..00000000000 --- a/extensions/cpp/test/colorize-results/test-78769_cpp.json +++ /dev/null @@ -1,1190 +0,0 @@ -[ - { - "c": "#", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "define", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "DOCTEST_IMPLEMENT_FIXTURE", - "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.definition.parameters.begin.preprocessor.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "der", - "t": "source.cpp meta.preprocessor.macro.cpp variable.parameter.preprocessor.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.separator.parameters.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "base", - "t": "source.cpp meta.preprocessor.macro.cpp variable.parameter.preprocessor.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.separator.parameters.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "func", - "t": "source.cpp meta.preprocessor.macro.cpp variable.parameter.preprocessor.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.separator.parameters.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "decorators", - "t": "source.cpp meta.preprocessor.macro.cpp variable.parameter.preprocessor.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.definition.parameters.end.preprocessor.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "namespace", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.head.namespace.cpp keyword.other.namespace.definition.cpp storage.type.namespace.definition.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.head.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "{", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.head.namespace.cpp punctuation.section.block.begin.bracket.curly.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "struct", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp storage.type.struct.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "der", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp entity.name.type.struct.cpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ":", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp punctuation.separator.colon.inheritance.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "public", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp storage.type.modifier.access.public.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "base", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp meta.qualified_type.cpp entity.name.type.cpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "{", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.head.struct.cpp punctuation.section.block.begin.bracket.curly.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "void", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "f", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ")", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ";", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "}", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp meta.body.struct.cpp punctuation.section.block.end.bracket.curly.struct.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ";", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.block.struct.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "static", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp storage.modifier.static.cpp", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "void", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "func", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ")", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.head.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "{", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " der v", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ";", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "v", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.object.access.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.dot-access.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "f", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.member.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.member.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ")", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.member.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ";", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "}", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "DOCTEST_REGISTER_FUNCTION", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "DOCTEST_EMPTY", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ",", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " func", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ",", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " decorators", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ")", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "}", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.namespace.cpp meta.body.namespace.cpp punctuation.section.block.end.bracket.curly.namespace.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\\", - "t": "source.cpp meta.preprocessor.macro.cpp constant.character.escape.line-continuation.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "inline", - "t": "source.cpp meta.preprocessor.macro.cpp storage.modifier.specifier.functional.pre-parameters.inline.cpp", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " DOCTEST_NOINLINE ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "void", - "t": "source.cpp meta.preprocessor.macro.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "der", - "t": "source.cpp meta.preprocessor.macro.cpp entity.name.scope-resolution.cpp", - "r": { - "dark_plus": "entity.name.scope-resolution: #4EC9B0", - "light_plus": "entity.name.scope-resolution: #267F99", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.scope-resolution: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "f", - "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": ")", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - } -] \ No newline at end of file diff --git a/extensions/cpp/test/colorize-results/test-80644_cpp.json b/extensions/cpp/test/colorize-results/test-80644_cpp.json deleted file mode 100644 index d10b4bb74ee..00000000000 --- a/extensions/cpp/test/colorize-results/test-80644_cpp.json +++ /dev/null @@ -1,508 +0,0 @@ -[ - { - "c": "struct", - "t": "source.cpp meta.block.struct.cpp meta.head.struct.cpp storage.type.struct.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.cpp meta.block.struct.cpp entity.name.type.struct.cpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.block.struct.cpp meta.head.struct.cpp punctuation.section.block.begin.bracket.curly.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp entity.name.function.constructor.cpp entity.name.function.definition.special.constructor.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.parameters.begin.bracket.round.special.constructor.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp meta.function.definition.special.constructor.cpp meta.head.function.definition.special.constructor.cpp punctuation.section.parameters.end.bracket.round.special.constructor.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " a", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " b", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " c", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cpp meta.block.struct.cpp meta.body.struct.cpp punctuation.section.block.end.bracket.curly.struct.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.struct.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.cpp entity.name.scope-resolution.function.call.cpp", - "r": { - "dark_plus": "entity.name.scope-resolution: #4EC9B0", - "light_plus": "entity.name.scope-resolution: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.scope-resolution: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " : ", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ")", - "t": "source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " b(2),", - "t": "source.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "c", - "t": "source.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ")", - "t": "source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.block.cpp punctuation.section.block.begin.bracket.curly.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cpp meta.block.cpp punctuation.section.block.end.bracket.curly.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/cpp/test/colorize-results/test-92369_cpp.json b/extensions/cpp/test/colorize-results/test-92369_cpp.json deleted file mode 100644 index 6a3254db6f6..00000000000 --- a/extensions/cpp/test/colorize-results/test-92369_cpp.json +++ /dev/null @@ -1,24 +0,0 @@ -[ - { - "c": "std::tuple_element<0, std::pair, pugi::xml_node, std::less >, std::allocator, pugi::xml_node> > > > >::type dnode", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "std::_Rb_tree_iterator, pugi::xml_node, std::less >, std::allocator, pugi::xml_node> > > > > > dnode_it = dnodes_.find(uid.position)", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/cpp/test/colorize-results/test_c.json b/extensions/cpp/test/colorize-results/test_c.json deleted file mode 100644 index 30fd5393c47..00000000000 --- a/extensions/cpp/test/colorize-results/test_c.json +++ /dev/null @@ -1,2796 +0,0 @@ -[ - { - "c": "/*", - "t": "source.c comment.block.c punctuation.definition.comment.begin.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " C Program to find roots of a quadratic equation when coefficients are entered by user. ", - "t": "source.c comment.block.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.c comment.block.c punctuation.definition.comment.end.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "/*", - "t": "source.c comment.block.c punctuation.definition.comment.begin.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Library function sqrt() computes the square root. ", - "t": "source.c comment.block.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.c comment.block.c punctuation.definition.comment.end.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c punctuation.definition.directive.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.c meta.preprocessor.include.c", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "<", - "t": "source.c meta.preprocessor.include.c string.quoted.other.lt-gt.include.c punctuation.definition.string.begin.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "stdio.h", - "t": "source.c meta.preprocessor.include.c string.quoted.other.lt-gt.include.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "source.c meta.preprocessor.include.c string.quoted.other.lt-gt.include.c punctuation.definition.string.end.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#", - "t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c punctuation.definition.directive.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.c meta.preprocessor.include.c keyword.control.directive.include.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.c meta.preprocessor.include.c", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "<", - "t": "source.c meta.preprocessor.include.c string.quoted.other.lt-gt.include.c punctuation.definition.string.begin.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "math.h", - "t": "source.c meta.preprocessor.include.c string.quoted.other.lt-gt.include.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "source.c meta.preprocessor.include.c string.quoted.other.lt-gt.include.c punctuation.definition.string.end.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.c meta.preprocessor.include.c", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "/*", - "t": "source.c comment.block.c punctuation.definition.comment.begin.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " This is needed to use sqrt() function.", - "t": "source.c comment.block.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.c comment.block.c punctuation.definition.comment.end.c", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "int", - "t": "source.c storage.type.built-in.primitive.c", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "main", - "t": "source.c meta.function.c meta.function.definition.parameters.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.function.c meta.function.definition.parameters.c punctuation.section.parameters.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.function.c meta.function.definition.parameters.c punctuation.section.parameters.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.c meta.block.c punctuation.section.block.begin.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "float", - "t": "source.c meta.block.c storage.type.built-in.primitive.c", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " a", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " b", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " c", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " determinant", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " r1", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "r2", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " real", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " imag", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "printf", - "t": "source.c meta.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.begin.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Enter coefficients a, b and c: ", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.end.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "scanf", - "t": "source.c meta.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.begin.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%f%f%f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.end.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&", - "t": "source.c meta.block.c meta.function-call.c keyword.operator.c", - "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" - } - }, - { - "c": "a", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&", - "t": "source.c meta.block.c meta.function-call.c keyword.operator.c", - "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" - } - }, - { - "c": "b", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&", - "t": "source.c meta.block.c meta.function-call.c keyword.operator.c", - "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" - } - }, - { - "c": "c", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " determinant", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.c meta.block.c keyword.operator.assignment.c", - "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" - } - }, - { - "c": "b", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "b", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "4", - "t": "source.c meta.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": "*", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "a", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "c", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.c meta.block.c keyword.control.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "determinant", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.comparison.c", - "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" - } - }, - { - "c": "0", - "t": "source.c meta.block.c meta.parens.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.c meta.block.c punctuation.section.block.begin.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " r1", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.c meta.block.c keyword.operator.assignment.c", - "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" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "b", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "sqrt", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "determinant", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.c meta.block.c meta.parens.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": "*", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "a", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " r2", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.c meta.block.c keyword.operator.assignment.c", - "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" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "b", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "sqrt", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "determinant", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.c meta.block.c meta.parens.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": "*", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "a", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "printf", - "t": "source.c meta.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.begin.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Roots are: ", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " and ", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.end.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "r1 ", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " r2", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.c meta.block.c punctuation.section.block.end.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.c meta.block.c keyword.control.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.c meta.block.c keyword.control.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "determinant", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.comparison.c", - "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" - } - }, - { - "c": "0", - "t": "source.c meta.block.c meta.parens.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.c meta.block.c punctuation.section.block.begin.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " r1 ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.c meta.block.c keyword.operator.assignment.c", - "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" - } - }, - { - "c": " r2 ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.c meta.block.c keyword.operator.assignment.c", - "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" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "b", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.c meta.block.c meta.parens.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": "*", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "a", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "printf", - "t": "source.c meta.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.begin.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Roots are: ", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " and ", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.end.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " r1", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " r2", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.c meta.block.c punctuation.section.block.end.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.c meta.block.c keyword.control.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.c meta.block.c punctuation.section.block.begin.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " real", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.c meta.block.c keyword.operator.assignment.c", - "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" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "b", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.c meta.block.c meta.parens.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": "*", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "a", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " imag ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.c meta.block.c keyword.operator.assignment.c", - "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" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sqrt", - "t": "source.c meta.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.c meta.block.c meta.function-call.c keyword.operator.c", - "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" - } - }, - { - "c": "determinant", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.c meta.block.c keyword.operator.c", - "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" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.c meta.block.c meta.parens.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": "*", - "t": "source.c meta.block.c meta.parens.block.c keyword.operator.c", - "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" - } - }, - { - "c": "a", - "t": "source.c meta.block.c meta.parens.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.parens.block.c punctuation.section.parens.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "printf", - "t": "source.c meta.block.c meta.function-call.c entity.name.function.c", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.begin.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.begin.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Roots are: ", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "+", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "i and ", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "-", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%.2f", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c constant.other.placeholder.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "i", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.c meta.block.c meta.function-call.c string.quoted.double.c punctuation.definition.string.end.c", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " real", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " imag", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " real", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.c meta.block.c meta.function-call.c punctuation.separator.delimiter.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " imag", - "t": "source.c meta.block.c meta.function-call.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.c meta.block.c meta.function-call.c punctuation.section.arguments.end.bracket.round.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.c meta.block.c punctuation.section.block.end.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.c meta.block.c keyword.control.c", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.c meta.block.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.c meta.block.c constant.numeric.decimal.c", - "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" - } - }, - { - "c": ";", - "t": "source.c meta.block.c punctuation.terminator.statement.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.c meta.block.c punctuation.section.block.end.bracket.curly.c", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/cpp/test/colorize-results/test_cc.json b/extensions/cpp/test/colorize-results/test_cc.json deleted file mode 100644 index cb2fb192e1d..00000000000 --- a/extensions/cpp/test/colorize-results/test_cc.json +++ /dev/null @@ -1,1982 +0,0 @@ -[ - { - "c": "#", - "t": "source.cpp keyword.control.directive.conditional.if.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.cpp keyword.control.directive.conditional.if.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.conditional.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "B4G_DEBUG_CHECK", - "t": "source.cpp meta.preprocessor.conditional.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fprintf", - "t": "source.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "stderr", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "num_candidate_ret=", - "t": "source.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%d", - "t": "source.cpp string.quoted.double.cpp constant.other.placeholder", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " num_candidate", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.cpp keyword.control.for.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.cpp meta.parens.cpp punctuation.section.parens.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.parens.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " i", - "t": "source.cpp meta.parens.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.cpp meta.parens.cpp keyword.operator.assignment.cpp", - "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" - } - }, - { - "c": "0", - "t": "source.cpp meta.parens.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ";", - "t": "source.cpp meta.parens.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.cpp meta.parens.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.cpp meta.parens.cpp keyword.operator.comparison.cpp", - "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" - } - }, - { - "c": "num_candidate", - "t": "source.cpp meta.parens.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.parens.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "++", - "t": "source.cpp meta.parens.cpp keyword.operator.increment.cpp", - "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" - } - }, - { - "c": "i", - "t": "source.cpp meta.parens.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.parens.cpp punctuation.section.parens.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fprintf", - "t": "source.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "stderr", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%d", - "t": "source.cpp string.quoted.double.cpp constant.other.placeholder", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "user_candidate", - "t": "source.cpp meta.bracket.square.access variable.other.object", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.cpp meta.bracket.square.access punctuation.definition.begin.bracket.square", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.cpp meta.bracket.square.access", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.cpp meta.bracket.square.access punctuation.definition.end.bracket.square", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fprintf", - "t": "source.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "stderr", - "t": "source.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.cpp keyword.control.directive.endif.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "endif", - "t": "source.cpp keyword.control.directive.endif.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "main", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "O", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp entity.name.type.parameter.cpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "obj", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp variable.parameter.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "LOG_INFO", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "not hilighted as string", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "LOG_INFO", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "obj ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<<", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ", even worse; ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<<", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "obj", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.object.access.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.dot-access.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.property.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<<", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " check this out.", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " everything from this point on is interpeted as a string literal...", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " O x", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "std", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.scope-resolution.cpp", - "r": { - "dark_plus": "entity.name.scope-resolution: #4EC9B0", - "light_plus": "entity.name.scope-resolution: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.scope-resolution: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unique_ptr", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.comparison.cpp", - "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" - } - }, - { - "c": "O", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.comparison.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "o", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.wordlike.cpp keyword.operator.new.cpp", - "r": { - "dark_plus": "source.cpp keyword.operator.new: #C586C0", - "light_plus": "source.cpp keyword.operator.new: #AF00DB", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "source.cpp keyword.operator.new: #C586C0" - } - }, - { - "c": " O", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " sadness.", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sprintf", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "options", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "STYLE=Keramik;TITLE=", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%s", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";THEME=", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%s", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.other.placeholder", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ...", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "main2", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "printf", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " the rest of", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "asm", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp storage.type.asm.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp punctuation.section.parens.begin.bracket.round.assembly.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp punctuation.definition.string.begin.assembly.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "movw $0x38, %ax; ltr %ax", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp meta.embedded.assembly", - "r": { - "dark_plus": "meta.embedded.assembly: #CE9178", - "light_plus": "meta.embedded.assembly: #A31515", - "dark_vs": "meta.embedded.assembly: #CE9178", - "light_vs": "meta.embedded.assembly: #A31515", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp punctuation.definition.string.end.assembly.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp punctuation.section.parens.end.bracket.round.assembly.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fn", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "{};", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " the rest of", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "}", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/cpp/test/colorize-results/test_cpp.json b/extensions/cpp/test/colorize-results/test_cpp.json deleted file mode 100644 index 7752bbfa606..00000000000 --- a/extensions/cpp/test/colorize-results/test_cpp.json +++ /dev/null @@ -1,2433 +0,0 @@ -[ - { - "c": "//", - "t": "source.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " classes example", - "t": "source.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.cpp meta.preprocessor.include.cpp keyword.control.directive.include.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.cpp meta.preprocessor.include.cpp keyword.control.directive.include.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.include.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "<", - "t": "source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "iostream", - "t": "source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "source.cpp meta.preprocessor.include.cpp string.quoted.other.lt-gt.include.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "using", - "t": "source.cpp meta.using-namespace.cpp keyword.other.using.directive.cpp", - "r": { - "dark_plus": "keyword.other.using: #C586C0", - "light_plus": "keyword.other.using: #AF00DB", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword.other.using: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.using-namespace.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "namespace", - "t": "source.cpp meta.using-namespace.cpp keyword.other.namespace.directive.cpp storage.type.namespace.directive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.using-namespace.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "std", - "t": "source.cpp meta.using-namespace.cpp entity.name.namespace.cpp", - "r": { - "dark_plus": "entity.name.namespace: #4EC9B0", - "light_plus": "entity.name.namespace: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.namespace: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.cpp meta.using-namespace.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "define", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "EXTERN_C", - "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "extern", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.cpp storage.type.extern.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\"", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "C", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.preprocessor.macro.cpp meta.block.extern.cpp meta.head.extern.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "class", - "t": "source.cpp meta.block.class.cpp meta.head.class.cpp storage.type.class.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Rectangle", - "t": "source.cpp meta.block.class.cpp entity.name.type.class.cpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.block.class.cpp meta.head.class.cpp punctuation.section.block.begin.bracket.curly.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " width", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " height", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.modifier.access.control.public.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ":", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp storage.type.modifier.access.control.public.cpp punctuation.separator.colon.access.control.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "set_values", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ",", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "area", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.control.return.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " width", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.cpp", - "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" - } - }, - { - "c": "height", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cpp meta.block.class.cpp meta.body.class.cpp punctuation.section.block.end.bracket.curly.class.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.block.class.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Rectangle", - "t": "source.cpp meta.function.definition.cpp entity.name.scope-resolution.function.definition.cpp", - "r": { - "dark_plus": "entity.name.scope-resolution: #4EC9B0", - "light_plus": "entity.name.scope-resolution: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.scope-resolution: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.cpp meta.function.definition.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "set_values", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp variable.parameter.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "y", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp meta.function.definition.parameters meta.parameter.cpp variable.parameter.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " width ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.assignment.cpp", - "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" - } - }, - { - "c": " x", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " height ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.assignment.cpp", - "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" - } - }, - { - "c": " y", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "long", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.qualified_type.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "double", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "operator", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp keyword.other.operator.overload.cpp", - "r": { - "dark_plus": "keyword.other.operator: #C586C0", - "light_plus": "keyword.other.operator: #AF00DB", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword.other.operator: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"\"", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp entity.name.operator.custom-literal.cpp", - "r": { - "dark_plus": "entity.name.operator.custom-literal: #DCDCAA", - "light_plus": "entity.name.operator.custom-literal: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "_w", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp entity.name.operator.custom-literal.cpp", - "r": { - "dark_plus": "entity.name.operator.custom-literal: #DCDCAA", - "light_plus": "entity.name.operator.custom-literal: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp punctuation.section.parameters.begin.bracket.round.special.operator-overload.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "long", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload meta.parameter.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "double", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp meta.function.definition.parameters.special.operator-overload meta.parameter.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.special.operator-overload.cpp meta.head.function.definition.special.operator-overload.cpp punctuation.section.parameters.end.bracket.round.special.operator-overload.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp punctuation.definition.directive.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "define", - "t": "source.cpp meta.preprocessor.macro.cpp keyword.control.directive.define.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "MY_MACRO", - "t": "source.cpp meta.preprocessor.macro.cpp entity.name.function.preprocessor.cpp", - "r": { - "dark_plus": "entity.name.function.preprocessor: #569CD6", - "light_plus": "entity.name.function.preprocessor: #0000FF", - "dark_vs": "entity.name.function.preprocessor: #569CD6", - "light_vs": "entity.name.function.preprocessor: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.definition.parameters.begin.preprocessor.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "a", - "t": "source.cpp meta.preprocessor.macro.cpp variable.parameter.preprocessor.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.separator.parameters.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.preprocessor.macro.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "b", - "t": "source.cpp meta.preprocessor.macro.cpp variable.parameter.preprocessor.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.cpp meta.preprocessor.macro.cpp punctuation.definition.parameters.end.preprocessor.cpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "int", - "t": "source.cpp meta.function.definition.cpp meta.qualified_type.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "main", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp entity.name.function.definition.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.parameters.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cpp meta.function.definition.cpp meta.head.function.definition.cpp punctuation.section.block.begin.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ".", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.point.cpp", - "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" - } - }, - { - "c": "2", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": "_w", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.other.unit.user-defined.cpp", - "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" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp punctuation.definition.comment.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " calls operator \"\" _w(1.2L)", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp comment.line.double-slash.cpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "asm", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp storage.type.asm.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp punctuation.section.parens.begin.bracket.round.assembly.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp punctuation.definition.string.begin.assembly.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "movl %a %b", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp meta.embedded.assembly", - "r": { - "dark_plus": "meta.embedded.assembly: #CE9178", - "light_plus": "meta.embedded.assembly: #A31515", - "dark_vs": "meta.embedded.assembly: #CE9178", - "light_vs": "meta.embedded.assembly: #A31515", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp string.quoted.double.cpp punctuation.definition.string.end.assembly.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.asm.cpp punctuation.section.parens.end.bracket.round.assembly.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "MY_MACRO", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ",", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " Rectangle rect", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rect", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.object.access.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.dot-access.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "set_values", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.member.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.member.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ",", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.delimiter.comma.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.member.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " cout ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<<", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "area: ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<<", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.bitwise.shift.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rect", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp variable.other.object.access.cpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.dot-access.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "area", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.member.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.member.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.member.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Task", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.scope-resolution.cpp", - "r": { - "dark_plus": "entity.name.scope-resolution: #4EC9B0", - "light_plus": "entity.name.scope-resolution: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.scope-resolution: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.template.call.cpp meta.template.call.cpp punctuation.section.angle-brackets.begin.template.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ANY_OUTPUT_TYPE", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.template.call.cpp meta.template.call.cpp punctuation.separator.delimiter.comma.template.argument.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ANY_INPUT_TYPE", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.template.call.cpp meta.template.call.cpp meta.qualified_type.cpp entity.name.type.cpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.template.call.cpp meta.template.call.cpp punctuation.section.angle-brackets.end.template.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.separator.namespace.access.cpp punctuation.separator.scope-resolution.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "links_to", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp storage.type.primitive.cpp storage.type.built-in.primitive.cpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " t ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.operator.assignment.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.control.if.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp punctuation.section.parens.begin.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "t ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp keyword.operator.comparison.cpp", - "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" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp meta.parens.cpp punctuation.section.parens.end.bracket.round.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "puts", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp entity.name.function.call.cpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.begin.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.begin.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\n", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp constant.character.escape.cpp", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "*************************************************", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp string.quoted.double.cpp punctuation.definition.string.end.cpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.arguments.end.bracket.round.function.call.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp keyword.control.return.cpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp constant.numeric.decimal.cpp", - "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" - } - }, - { - "c": ";", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.terminator.statement.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cpp meta.function.definition.cpp meta.body.function.definition.cpp punctuation.section.block.end.bracket.curly.function.definition.cpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/csharp/.vscodeignore b/extensions/csharp/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/csharp/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/csharp/cgmanifest.json b/extensions/csharp/cgmanifest.json deleted file mode 100644 index 6156bbb5082..00000000000 --- a/extensions/csharp/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "dotnet/csharp-tmLanguage", - "repositoryUrl": "https://github.com/dotnet/csharp-tmLanguage", - "commitHash": "572697a2c2267430010b3534281f73337144e94f" - } - }, - "license": "MIT", - "version": "0.1.0", - "description": "The file syntaxes/csharp.tmLanguage.json was derived from https://github.com/dotnet/csharp-tmLanguage" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/csharp/language-configuration.json b/extensions/csharp/language-configuration.json deleted file mode 100644 index d8698b46c09..00000000000 --- a/extensions/csharp/language-configuration.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": ["/*", "*/"] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string", "comment"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["<", ">"], - ["'", "'"], - ["\"", "\""] - ], - "folding": { - "markers": { - "start": "^\\s*#region\\b", - "end": "^\\s*#endregion\\b" - } - } -} diff --git a/extensions/csharp/package.json b/extensions/csharp/package.json deleted file mode 100644 index 74bbb283788..00000000000 --- a/extensions/csharp/package.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - "name": "csharp", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js dotnet/csharp-tmLanguage grammars/csharp.tmLanguage ./syntaxes/csharp.tmLanguage.json" - }, - - "contributes": { - "languages": [ - { - "id": "csharp", - "extensions": [ - ".cs", - ".csx", - ".cake" - ], - "aliases": [ - "C#", - "csharp" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "csharp", - "scopeName": "source.cs", - "path": "./syntaxes/csharp.tmLanguage.json" - } - ], - "snippets": [{ - "language": "csharp", - "path": "./snippets/csharp.code-snippets" - }] - } -} diff --git a/extensions/csharp/package.nls.json b/extensions/csharp/package.nls.json deleted file mode 100644 index bdc206114dd..00000000000 --- a/extensions/csharp/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "C# Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in C# files." -} \ No newline at end of file diff --git a/extensions/csharp/snippets/csharp.code-snippets b/extensions/csharp/snippets/csharp.code-snippets deleted file mode 100644 index 5ad4bfca6c1..00000000000 --- a/extensions/csharp/snippets/csharp.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "#region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "#endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/csharp/syntaxes/csharp.tmLanguage.json b/extensions/csharp/syntaxes/csharp.tmLanguage.json deleted file mode 100644 index 8e26aaefa77..00000000000 --- a/extensions/csharp/syntaxes/csharp.tmLanguage.json +++ /dev/null @@ -1,4333 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/dotnet/csharp-tmLanguage/blob/master/grammars/csharp.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/dotnet/csharp-tmLanguage/commit/572697a2c2267430010b3534281f73337144e94f", - "name": "C#", - "scopeName": "source.cs", - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#directives" - }, - { - "include": "#declarations" - }, - { - "include": "#script-top-level" - } - ], - "repository": { - "directives": { - "patterns": [ - { - "include": "#extern-alias-directive" - }, - { - "include": "#using-directive" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "declarations": { - "patterns": [ - { - "include": "#namespace-declaration" - }, - { - "include": "#type-declarations" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "script-top-level": { - "patterns": [ - { - "include": "#method-declaration" - }, - { - "include": "#statement" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "type-declarations": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#storage-modifier" - }, - { - "include": "#class-declaration" - }, - { - "include": "#delegate-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#struct-declaration" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "class-or-struct-members": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#storage-modifier" - }, - { - "include": "#type-declarations" - }, - { - "include": "#property-declaration" - }, - { - "include": "#field-declaration" - }, - { - "include": "#event-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#constructor-declaration" - }, - { - "include": "#destructor-declaration" - }, - { - "include": "#operator-declaration" - }, - { - "include": "#conversion-operator-declaration" - }, - { - "include": "#method-declaration" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "interface-members": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#property-declaration" - }, - { - "include": "#event-declaration" - }, - { - "include": "#indexer-declaration" - }, - { - "include": "#method-declaration" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "statement": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#while-statement" - }, - { - "include": "#do-statement" - }, - { - "include": "#for-statement" - }, - { - "include": "#foreach-statement" - }, - { - "include": "#if-statement" - }, - { - "include": "#else-part" - }, - { - "include": "#switch-statement" - }, - { - "include": "#goto-statement" - }, - { - "include": "#return-statement" - }, - { - "include": "#break-or-continue-statement" - }, - { - "include": "#throw-statement" - }, - { - "include": "#yield-statement" - }, - { - "include": "#await-statement" - }, - { - "include": "#try-statement" - }, - { - "include": "#checked-unchecked-statement" - }, - { - "include": "#lock-statement" - }, - { - "include": "#using-statement" - }, - { - "include": "#labeled-statement" - }, - { - "include": "#local-declaration" - }, - { - "include": "#block" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "expression": { - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#checked-unchecked-expression" - }, - { - "include": "#typeof-or-default-expression" - }, - { - "include": "#nameof-expression" - }, - { - "include": "#throw-expression" - }, - { - "include": "#interpolated-string" - }, - { - "include": "#verbatim-interpolated-string" - }, - { - "include": "#this-or-base-expression" - }, - { - "include": "#conditional-operator" - }, - { - "include": "#expression-operators" - }, - { - "include": "#await-expression" - }, - { - "include": "#query-expression" - }, - { - "include": "#as-expression" - }, - { - "include": "#is-expression" - }, - { - "include": "#anonymous-method-expression" - }, - { - "include": "#object-creation-expression" - }, - { - "include": "#array-creation-expression" - }, - { - "include": "#anonymous-object-creation-expression" - }, - { - "include": "#invocation-expression" - }, - { - "include": "#member-access-expression" - }, - { - "include": "#element-access-expression" - }, - { - "include": "#cast-expression" - }, - { - "include": "#literal" - }, - { - "include": "#parenthesized-expression" - }, - { - "include": "#tuple-deconstruction-assignment" - }, - { - "include": "#initializer-expression" - }, - { - "include": "#identifier" - } - ] - }, - "extern-alias-directive": { - "begin": "\\s*(extern)\\b\\s*(alias)\\b\\s*(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.extern.cs" - }, - "2": { - "name": "keyword.other.alias.cs" - }, - "3": { - "name": "variable.other.alias.cs" - } - }, - "end": "(?=;)" - }, - "using-directive": { - "patterns": [ - { - "begin": "\\b(using)\\b\\s+(static)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.using.cs" - }, - "2": { - "name": "keyword.other.static.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "begin": "\\b(using)\\s+(?=(@?[_[:alpha:]][_[:alnum:]]*)\\s*=)", - "beginCaptures": { - "1": { - "name": "keyword.other.using.cs" - }, - "2": { - "name": "entity.name.type.alias.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type" - }, - { - "include": "#operator-assignment" - } - ] - }, - { - "begin": "\\b(using)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.using.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "entity.name.type.namespace.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#operator-assignment" - } - ] - } - ] - }, - "attribute-section": { - "begin": "(\\[)(assembly|module|field|event|method|param|property|return|type)?(\\:)?", - "beginCaptures": { - "1": { - "name": "punctuation.squarebracket.open.cs" - }, - "2": { - "name": "keyword.other.attribute-specifier.cs" - }, - "3": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "attribute": { - "patterns": [ - { - "include": "#type-name" - }, - { - "include": "#attribute-arguments" - } - ] - }, - "attribute-arguments": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#attribute-named-argument" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "attribute-named-argument": { - "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?==)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.property.cs" - } - }, - "end": "(?=(,|\\)))", - "patterns": [ - { - "include": "#operator-assignment" - }, - { - "include": "#expression" - } - ] - }, - "namespace-declaration": { - "begin": "\\b(namespace)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comment" - }, - { - "name": "entity.name.type.namespace.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-accessor" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#declarations" - }, - { - "include": "#using-directive" - }, - { - "include": "#punctuation-semicolon" - } - ] - } - ] - }, - "storage-modifier": { - "name": "storage.modifier.cs", - "match": "(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.delegate.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.type.delegate.cs" - }, - "8": { - "patterns": [ - { - "include": "#type-parameter-list" - } - ] - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#generic-constraints" - } - ] - }, - "enum-declaration": { - "begin": "(?=\\benum\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?=enum)", - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "match": "(enum)\\s+(@?[_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "keyword.other.enum.cs" - }, - "2": { - "name": "entity.name.type.enum.cs" - } - } - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#punctuation-comma" - }, - { - "begin": "@?[_[:alpha:]][_[:alnum:]]*", - "beginCaptures": { - "0": { - "name": "entity.name.variable.enum-member.cs" - } - }, - "end": "(?=(,|\\}))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "interface-declaration": { - "begin": "(?=\\binterface\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?x)\n(interface)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.interface.cs" - }, - "2": { - "name": "entity.name.type.interface.cs" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#base-types" - }, - { - "include": "#generic-constraints" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#interface-members" - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "struct-declaration": { - "begin": "(?=\\bstruct\\b)", - "end": "(?<=\\})", - "patterns": [ - { - "begin": "(?x)\n(struct)\\b\\s+\n(@?[_[:alpha:]][_[:alnum:]]*)", - "beginCaptures": { - "1": { - "name": "keyword.other.struct.cs" - }, - "2": { - "name": "entity.name.type.struct.cs" - } - }, - "end": "(?=\\{)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameter-list" - }, - { - "include": "#base-types" - }, - { - "include": "#generic-constraints" - } - ] - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#class-or-struct-members" - } - ] - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - } - ] - }, - "type-parameter-list": { - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.cs" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.cs" - } - }, - "patterns": [ - { - "match": "\\b(in|out)\\b", - "captures": { - "1": { - "name": "storage.modifier.cs" - } - } - }, - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", - "captures": { - "1": { - "name": "entity.name.type.type-parameter.cs" - } - } - }, - { - "include": "#comment" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#attribute-section" - } - ] - }, - "base-types": { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{|where)", - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#preprocessor" - } - ] - }, - "generic-constraints": { - "begin": "(where)\\s+(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", - "beginCaptures": { - "1": { - "name": "keyword.other.where.cs" - }, - "2": { - "name": "storage.type.cs" - }, - "3": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{|where|;|=>)", - "patterns": [ - { - "name": "keyword.other.class.cs", - "match": "\\bclass\\b" - }, - { - "name": "keyword.other.struct.cs", - "match": "\\bstruct\\b" - }, - { - "match": "(new)\\s*(\\()\\s*(\\))", - "captures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "name": "punctuation.parenthesis.open.cs" - }, - "3": { - "name": "punctuation.parenthesis.close.cs" - } - } - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#generic-constraints" - } - ] - }, - "field-declaration": { - "begin": "(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g)\\s* # first field name\n(?!=>|==)(?=,|;|=|$)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.field.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "name": "entity.name.variable.field.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#class-or-struct-members" - } - ] - }, - "property-declaration": { - "begin": "(?x)\n\n# The negative lookahead below ensures that we don't match nested types\n# or other declarations as properties.\n(?![[:word:][:space:]]*\\b(?:class|interface|struct|enum|event)\\b)\n\n(?\n (?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?\\g)\\s*\n(?=\\{|=>|$)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "8": { - "name": "entity.name.variable.property.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property-accessors" - }, - { - "include": "#expression-body" - }, - { - "include": "#variable-initializer" - }, - { - "include": "#class-or-struct-members" - } - ] - }, - "indexer-declaration": { - "begin": "(?x)\n(?\n (?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?this)\\s*\n(?=\\[)", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "8": { - "name": "keyword.other.this.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#bracketed-parameter-list" - }, - { - "include": "#property-accessors" - }, - { - "include": "#expression-body" - }, - { - "include": "#variable-initializer" - } - ] - }, - "event-declaration": { - "begin": "(?x)\n\\b(event)\\b\\s*\n(?\n (?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(?\\g(?:\\s*,\\s*\\g)*)\\s*\n(?=\\{|;|$)", - "beginCaptures": { - "1": { - "name": "keyword.other.event.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "8": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "9": { - "patterns": [ - { - "name": "entity.name.variable.event.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - } - ] - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#event-accessors" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "property-accessors": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "name": "storage.modifier.cs", - "match": "\\b(private|protected|internal)\\b" - }, - { - "name": "keyword.other.get.cs", - "match": "\\b(get)\\b" - }, - { - "name": "keyword.other.set.cs", - "match": "\\b(set)\\b" - }, - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "event-accessors": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "name": "keyword.other.add.cs", - "match": "\\b(add)\\b" - }, - { - "name": "keyword.other.remove.cs", - "match": "\\b(remove)\\b" - }, - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - }, - { - "include": "#punctuation-semicolon" - } - ] - }, - "method-declaration": { - "begin": "(?x)\n(?\n (?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\\s+\n)\n(?\\g\\s*\\.\\s*)?\n(\\g)\\s*\n(<([^<>]+)>)?\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "patterns": [ - { - "include": "#type" - }, - { - "include": "#punctuation-accessor" - } - ] - }, - "8": { - "name": "entity.name.function.cs" - }, - "9": { - "patterns": [ - { - "include": "#type-parameter-list" - } - ] - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#generic-constraints" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "constructor-declaration": { - "begin": "(?=@?[_[:alpha:]][_[:alnum:]]*\\s*\\()", - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\b", - "captures": { - "1": { - "name": "entity.name.function.cs" - } - } - }, - { - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=\\{|=>)", - "patterns": [ - { - "include": "#constructor-initializer" - } - ] - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#preprocessor" - }, - { - "include": "#comment" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "constructor-initializer": { - "begin": "\\b(?:(base)|(this))\\b\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.base.cs" - }, - "2": { - "name": "keyword.other.this.cs" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "destructor-declaration": { - "begin": "(~)(@?[_[:alpha:]][_[:alnum:]]*)\\s*(?=\\()", - "beginCaptures": { - "1": { - "name": "punctuation.tilde.cs" - }, - "2": { - "name": "entity.name.function.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "operator-declaration": { - "begin": "(?x)\n(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?(?:\\b(?:operator)))\\s*\n(?(?:\\+|-|\\*|/|%|&|\\||\\^|\\<\\<|\\>\\>|==|!=|\\>|\\<|\\>=|\\<=|!|~|\\+\\+|--|true|false))\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "keyword.other.operator-decl.cs" - }, - "7": { - "name": "entity.name.function.cs" - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "conversion-operator-declaration": { - "begin": "(?x)\n(?(?:\\b(?:explicit|implicit)))\\s*\n(?(?:\\b(?:operator)))\\s*\n(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "\\b(explicit)\\b", - "captures": { - "1": { - "name": "keyword.other.explicit.cs" - } - } - }, - { - "match": "\\b(implicit)\\b", - "captures": { - "1": { - "name": "keyword.other.implicit.cs" - } - } - } - ] - }, - "2": { - "name": "keyword.other.operator-decl.cs" - }, - "3": { - "patterns": [ - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\})|(?=;)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#expression-body" - }, - { - "include": "#block" - } - ] - }, - "block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.curlybrace.open.cs" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.curlybrace.close.cs" - } - }, - "patterns": [ - { - "include": "#statement" - } - ] - }, - "variable-initializer": { - "begin": "(?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.cs" - } - }, - "end": "(?=[,\\)\\];}])", - "patterns": [ - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - "expression-body": { - "begin": "=>", - "beginCaptures": { - "0": { - "name": "keyword.operator.arrow.cs" - } - }, - "end": "(?=[,\\);}])", - "patterns": [ - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - "goto-statement": { - "begin": "(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g)\\s+\n\\b(in)\\b", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.cs" - }, - "8": { - "name": "keyword.control.loop.in.cs" - } - } - }, - { - "match": "(?x) # match foreach (var (x, y) in ...)\n(?:\\b(var)\\b\\s*)?\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s+\n\\b(in)\\b", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#tuple-declaration-deconstruction-element-list" - } - ] - }, - "3": { - "name": "keyword.control.loop.in.cs" - } - } - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#statement" - } - ] - }, - "try-statement": { - "patterns": [ - { - "include": "#try-block" - }, - { - "include": "#catch-clause" - }, - { - "include": "#finally-clause" - } - ] - }, - "try-block": { - "begin": "(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?:(\\g)\\b)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.local.cs" - } - } - } - ] - }, - { - "include": "#when-clause" - }, - { - "include": "#comment" - }, - { - "include": "#block" - } - ] - }, - "when-clause": { - "begin": "(?\n (?:\n (?:ref\\s+(?:readonly\\s+)?)? # ref local\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g)\\s*\n(?!=>)\n(?=,|;|=|\\))", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "name": "storage.modifier.cs" - }, - "3": { - "name": "keyword.other.var.cs" - }, - "4": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "9": { - "name": "entity.name.variable.local.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "name": "entity.name.variable.local.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "local-constant-declaration": { - "begin": "(?x)\n(?\\b(?:const)\\b)\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g)\\s*\n(?=,|;|=)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.cs" - } - }, - "end": "(?=;)", - "patterns": [ - { - "name": "entity.name.variable.local.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "local-tuple-var-deconstruction": { - "begin": "(?x) # e.g. var (x, y) = GetPoint();\n(?:\\b(var)\\b\\s*)\n(?\\((?:[^\\(\\)]|\\g)+\\))\\s*\n(?=;|=|\\))", - "beginCaptures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#tuple-declaration-deconstruction-element-list" - } - ] - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#variable-initializer" - } - ] - }, - "tuple-deconstruction-assignment": { - "match": "(?x)\n(?\\s*\\((?:[^\\(\\)]|\\g)+\\))\\s*\n(?!=>|==)(?==)", - "captures": { - "1": { - "patterns": [ - { - "include": "#tuple-deconstruction-element-list" - } - ] - } - } - }, - "tuple-declaration-deconstruction-element-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#tuple-declaration-deconstruction-element-list" - }, - { - "include": "#declaration-expression-tuple" - }, - { - "include": "#punctuation-comma" - }, - { - "match": "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "entity.name.variable.tuple-element.cs" - } - } - } - ] - }, - "tuple-deconstruction-element-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#tuple-deconstruction-element-list" - }, - { - "include": "#declaration-expression-tuple" - }, - { - "include": "#punctuation-comma" - }, - { - "match": "(?x) # e.g. x\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "variable.other.readwrite.cs" - } - } - } - ] - }, - "declaration-expression-local": { - "match": "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g)\\b\\s*\n(?=[,)\\]])", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.local.cs" - } - } - }, - "declaration-expression-tuple": { - "match": "(?x) # e.g. int x OR var x\n(?:\n \\b(var)\\b|\n (?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n )\n)\\s+\n(\\g)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "keyword.other.var.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.tuple-element.cs" - } - } - }, - "checked-unchecked-expression": { - "begin": "(?>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.cs", - "match": "<<|>>" - }, - { - "name": "keyword.operator.comparison.cs", - "match": "==|!=" - }, - { - "name": "keyword.operator.relational.cs", - "match": "<=|>=|<|>" - }, - { - "name": "keyword.operator.logical.cs", - "match": "\\!|&&|\\|\\|" - }, - { - "name": "keyword.operator.bitwise.cs", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.cs", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.cs", - "match": "--" - }, - { - "name": "keyword.operator.increment.cs", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.cs", - "match": "%|\\*|/|-|\\+" - }, - { - "name": "keyword.operator.null-coalescing.cs", - "match": "\\?\\?" - } - ] - }, - "conditional-operator": { - "begin": "(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(\\))(?=\\s*@?[_[:alnum:]\\(])", - "captures": { - "1": { - "name": "punctuation.parenthesis.open.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "punctuation.parenthesis.close.cs" - } - } - }, - "as-expression": { - "match": "(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?", - "captures": { - "1": { - "name": "keyword.other.as.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - } - }, - "is-expression": { - "match": "(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?", - "captures": { - "1": { - "name": "keyword.other.is.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - } - }, - "this-or-base-expression": { - "match": "\\b(?:(base)|(this))\\b", - "captures": { - "1": { - "name": "keyword.other.base.cs" - }, - "2": { - "name": "keyword.other.this.cs" - } - } - }, - "invocation-expression": { - "begin": "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(?:(\\.)\\s*)? # preceding dot?\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # method name\n(?\\s*<([^<>]|\\g)+>\\s*)?\\s* # type arguments\n(?=\\() # open paren of argument list", - "beginCaptures": { - "1": { - "name": "keyword.operator.null-conditional.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - }, - "3": { - "name": "entity.name.function.cs" - }, - "4": { - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "element-access-expression": { - "begin": "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(?:(\\.)\\s*)? # preceding dot?\n(?:(@?[_[:alpha:]][_[:alnum:]]*)\\s*)? # property name\n(?:(\\?)\\s*)? # null-conditional operator?\n(?=\\[) # open bracket of argument list", - "beginCaptures": { - "1": { - "name": "keyword.operator.null-conditional.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - }, - "3": { - "name": "variable.other.object.property.cs" - }, - "4": { - "name": "keyword.operator.null-conditional.cs" - } - }, - "end": "(?<=\\])(?!\\s*\\[)", - "patterns": [ - { - "include": "#bracketed-argument-list" - } - ] - }, - "member-access-expression": { - "patterns": [ - { - "match": "(?x)\n(?:(\\?)\\s*)? # preceding null-conditional operator?\n(\\.)\\s* # preceding dot\n(@?[_[:alpha:]][_[:alnum:]]*)\\s* # property name\n(?![_[:alnum:]]|\\(|(\\?)?\\[|<) # next character is not alpha-numeric, nor a (, [, or <. Also, test for ?[", - "captures": { - "1": { - "name": "keyword.operator.null-conditional.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - }, - "3": { - "name": "variable.other.object.property.cs" - } - } - }, - { - "match": "(?x)\n(\\.)?\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?\\s*<([^<>]|\\g)+>\\s*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", - "captures": { - "1": { - "name": "punctuation.accessor.cs" - }, - "2": { - "name": "variable.other.object.cs" - }, - "3": { - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - } - }, - { - "match": "(?x)\n(@?[_[:alpha:]][_[:alnum:]]*)\n(?=\n (\\s*\\?)?\n \\s*\\.\\s*@?[_[:alpha:]][_[:alnum:]]*\n)", - "captures": { - "1": { - "name": "variable.other.object.cs" - } - } - } - ] - }, - "object-creation-expression": { - "patterns": [ - { - "include": "#object-creation-expression-with-parameters" - }, - { - "include": "#object-creation-expression-with-no-parameters" - } - ] - }, - "object-creation-expression-with-parameters": { - "begin": "(?x)\n(new)\\s+\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#argument-list" - } - ] - }, - "object-creation-expression-with-no-parameters": { - "match": "(?x)\n(new)\\s+\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s*\n(?=\\{|$)", - "captures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - } - }, - "array-creation-expression": { - "begin": "(?x)\n\\b(new|stackalloc)\\b\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\\s*\n(?=\\[)", - "beginCaptures": { - "1": { - "name": "keyword.other.new.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - } - }, - "end": "(?<=\\])", - "patterns": [ - { - "include": "#bracketed-argument-list" - } - ] - }, - "anonymous-object-creation-expression": { - "begin": "\\b(new)\\b\\s*(?=\\{|$)", - "beginCaptures": { - "1": { - "name": "keyword.other.new.cs" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#initializer-expression" - } - ] - }, - "bracketed-parameter-list": { - "begin": "(?=(\\[))", - "beginCaptures": { - "1": { - "name": "punctuation.squarebracket.open.cs" - } - }, - "end": "(?=(\\]))", - "endCaptures": { - "1": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "begin": "(?<=\\[)", - "end": "(?=\\])", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#parameter" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#variable-initializer" - } - ] - } - ] - }, - "parenthesized-parameter-list": { - "begin": "(\\()", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "(\\))", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#parameter" - }, - { - "include": "#punctuation-comma" - }, - { - "include": "#variable-initializer" - } - ] - }, - "parameter": { - "match": "(?x)\n(?:(?:\\b(ref|params|out|in|this)\\b)\\s+)?\n(?\n (?:\n (?:ref\\s+)? # ref return\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+\n(\\g)", - "captures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.parameter.cs" - } - } - }, - "argument-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#named-argument" - }, - { - "include": "#argument" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "bracketed-argument-list": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.squarebracket.open.cs" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "include": "#named-argument" - }, - { - "include": "#argument" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "named-argument": { - "begin": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(:)", - "beginCaptures": { - "1": { - "name": "entity.name.variable.parameter.cs" - }, - "2": { - "name": "punctuation.separator.colon.cs" - } - }, - "end": "(?=(,|\\)|\\]))", - "patterns": [ - { - "include": "#argument" - } - ] - }, - "argument": { - "patterns": [ - { - "name": "storage.modifier.cs", - "match": "\\b(ref|out|in)\\b" - }, - { - "include": "#declaration-expression-local" - }, - { - "include": "#expression" - } - ] - }, - "query-expression": { - "begin": "(?x)\n\\b(from)\\b\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\n\\s+(\\g)\\b\\s*\n\\b(in)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.from.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.range-variable.cs" - }, - "8": { - "name": "keyword.query.in.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "query-body": { - "patterns": [ - { - "include": "#let-clause" - }, - { - "include": "#where-clause" - }, - { - "include": "#join-clause" - }, - { - "include": "#orderby-clause" - }, - { - "include": "#select-clause" - }, - { - "include": "#group-clause" - } - ] - }, - "let-clause": { - "begin": "(?x)\n\\b(let)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.let.cs" - }, - "2": { - "name": "entity.name.variable.range-variable.cs" - }, - "3": { - "name": "keyword.operator.assignment.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "where-clause": { - "begin": "(?x)\n\\b(where)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.where.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "join-clause": { - "begin": "(?x)\n\\b(join)\\b\\s*\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)?\n\\s+(\\g)\\b\\s*\n\\b(in)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.join.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.range-variable.cs" - }, - "8": { - "name": "keyword.query.in.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#join-on" - }, - { - "include": "#join-equals" - }, - { - "include": "#join-into" - }, - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "join-on": { - "match": "\\b(on)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.on.cs" - } - } - }, - "join-equals": { - "match": "\\b(equals)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.equals.cs" - } - } - }, - "join-into": { - "match": "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.into.cs" - }, - "2": { - "name": "entity.name.variable.range-variable.cs" - } - } - }, - "orderby-clause": { - "begin": "\\b(orderby)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.orderby.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#ordering-direction" - }, - { - "include": "#query-body" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "ordering-direction": { - "match": "\\b(?:(ascending)|(descending))\\b", - "captures": { - "1": { - "name": "keyword.query.ascending.cs" - }, - "2": { - "name": "keyword.query.descending.cs" - } - } - }, - "select-clause": { - "begin": "\\b(select)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.select.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "group-clause": { - "begin": "\\b(group)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.query.group.cs" - } - }, - "end": "(?=;|\\))", - "patterns": [ - { - "include": "#group-by" - }, - { - "include": "#group-into" - }, - { - "include": "#query-body" - }, - { - "include": "#expression" - } - ] - }, - "group-by": { - "match": "\\b(by)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.by.cs" - } - } - }, - "group-into": { - "match": "(?x)\n\\b(into)\\b\\s*\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*", - "captures": { - "1": { - "name": "keyword.query.into.cs" - }, - "2": { - "name": "entity.name.variable.range-variable.cs" - } - } - }, - "anonymous-method-expression": { - "patterns": [ - { - "begin": "(?x)\n(?:\\b(async)\\b\\s*)?\n(@?[_[:alpha:]][_[:alnum:]]*)\\b\\s*\n(=>)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "name": "entity.name.variable.parameter.cs" - }, - "3": { - "name": "keyword.operator.arrow.cs" - } - }, - "end": "(?=\\)|;|}|,)", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "(?x)\n(?:\\b(async)\\b\\s*)?\n(\\(.*?\\))\\s*\n(=>)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#lambda-parameter-list" - } - ] - }, - "3": { - "name": "keyword.operator.arrow.cs" - } - }, - "end": "(?=\\)|;|}|,)", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#ref-modifier" - }, - { - "include": "#expression" - } - ] - }, - { - "begin": "(?x)\n(?:\\b(async)\\b\\s*)?\n(?:\\b(delegate)\\b\\s*)", - "beginCaptures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "name": "keyword.other.delegate.cs" - } - }, - "end": "(?=\\)|;|}|,)", - "patterns": [ - { - "include": "#parenthesized-parameter-list" - }, - { - "include": "#block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "lambda-parameter-list": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#attribute-section" - }, - { - "include": "#lambda-parameter" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "lambda-parameter": { - "match": "(?x)\n(?:\\b(ref|out|in)\\b)?\\s*\n(?:(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\\s+)?\n(\\g)\\b\\s*\n(?=[,)])", - "captures": { - "1": { - "name": "storage.modifier.cs" - }, - "2": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "7": { - "name": "entity.name.variable.parameter.cs" - } - } - }, - "type": { - "name": "meta.type.cs", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#ref-modifier" - }, - { - "include": "#readonly-modifier" - }, - { - "include": "#tuple-type" - }, - { - "include": "#type-builtin" - }, - { - "include": "#type-name" - }, - { - "include": "#type-arguments" - }, - { - "include": "#type-array-suffix" - }, - { - "include": "#type-nullable-suffix" - } - ] - }, - "ref-modifier": { - "name": "storage.modifier.cs", - "match": "\\b(ref)\\b" - }, - "readonly-modifier": { - "name": "storage.modifier.cs", - "match": "\\b(readonly)\\b" - }, - "tuple-type": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.parenthesis.open.cs" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.parenthesis.close.cs" - } - }, - "patterns": [ - { - "include": "#tuple-element" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "tuple-element": { - "match": "(?x)\n(?\n (?:\n (?:\n (?:(?@?[_[:alpha:]][_[:alnum:]]*)\\s*\\:\\:\\s*)? # alias-qualification\n (? # identifier + type arguments (if any)\n \\g\\s*\n (?\\s*<(?:[^<>]|\\g)+>\\s*)?\n )\n (?:\\s*\\.\\s*\\g)* | # Are there any more names being dotted into?\n (?\\s*\\((?:[^\\(\\)]|\\g)+\\))\n )\n (?:\\s*\\?\\s*)? # nullable suffix?\n (?:\\s*\\[(?:\\s*,\\s*)*\\]\\s*)* # array suffix?\n )\n)\n(?:(?\\g)\\b)?", - "captures": { - "1": { - "patterns": [ - { - "include": "#type" - } - ] - }, - "6": { - "name": "entity.name.variable.tuple-element.cs" - } - } - }, - "type-builtin": { - "match": "\\b(bool|byte|char|decimal|double|float|int|long|object|sbyte|short|string|uint|ulong|ushort|void|dynamic)\\b", - "captures": { - "1": { - "name": "keyword.type.cs" - } - } - }, - "type-name": { - "patterns": [ - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)", - "captures": { - "1": { - "name": "entity.name.type.alias.cs" - }, - "2": { - "name": "punctuation.separator.coloncolon.cs" - } - } - }, - { - "match": "(@?[_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", - "captures": { - "1": { - "name": "storage.type.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - } - } - }, - { - "match": "(\\.)\\s*(@?[_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.cs" - }, - "2": { - "name": "storage.type.cs" - } - } - }, - { - "name": "storage.type.cs", - "match": "@?[_[:alpha:]][_[:alnum:]]*" - } - ] - }, - "type-arguments": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.cs" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.cs" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "type-array-suffix": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.squarebracket.open.cs" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.squarebracket.close.cs" - } - }, - "patterns": [ - { - "include": "#punctuation-comma" - } - ] - }, - "type-nullable-suffix": { - "match": "\\?", - "captures": { - "0": { - "name": "punctuation.separator.question-mark.cs" - } - } - }, - "operator-assignment": { - "name": "keyword.operator.assignment.cs", - "match": "(?)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.cs" - } - }, - "patterns": [ - { - "include": "#xml-attribute" - } - ] - }, - "xml-attribute": { - "patterns": [ - { - "match": "(?x)\n(?:^|\\s+)\n(\n (?:\n ([-_[:alnum:]]+)\n (:)\n )?\n ([-_[:alnum:]]+)\n)\n(=)", - "captures": { - "1": { - "name": "entity.other.attribute-name.cs" - }, - "2": { - "name": "entity.other.attribute-name.namespace.cs" - }, - "3": { - "name": "punctuation.separator.colon.cs" - }, - "4": { - "name": "entity.other.attribute-name.localname.cs" - }, - "5": { - "name": "punctuation.separator.equals.cs" - } - } - }, - { - "include": "#xml-string" - } - ] - }, - "xml-cdata": { - "name": "string.unquoted.cdata.cs", - "begin": "", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - } - }, - "xml-string": { - "patterns": [ - { - "name": "string.quoted.single.cs", - "begin": "\\'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\\'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#xml-character-entity" - } - ] - }, - { - "name": "string.quoted.double.cs", - "begin": "\\\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.cs" - } - }, - "end": "\\\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.cs" - } - }, - "patterns": [ - { - "include": "#xml-character-entity" - } - ] - } - ] - }, - "xml-character-entity": { - "patterns": [ - { - "name": "constant.character.entity.cs", - "match": "(?x)\n(&)\n(\n (?:[[:alpha:]:_][[:alnum:]:_.-]*)|\n (?:\\#[[:digit:]]+)|\n (?:\\#x[[:xdigit:]]+)\n)\n(;)", - "captures": { - "1": { - "name": "punctuation.definition.constant.cs" - }, - "3": { - "name": "punctuation.definition.constant.cs" - } - } - }, - { - "name": "invalid.illegal.bad-ampersand.cs", - "match": "&" - } - ] - }, - "xml-comment": { - "name": "comment.block.cs", - "begin": "", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.cs" - } - } - } - } -} \ No newline at end of file diff --git a/extensions/csharp/test/colorize-fixtures/test.cs b/extensions/csharp/test/colorize-fixtures/test.cs deleted file mode 100644 index d4ebb2fe753..00000000000 --- a/extensions/csharp/test/colorize-fixtures/test.cs +++ /dev/null @@ -1,17 +0,0 @@ -using System; -namespace SampleNamespace -{ - class TestClass - { - static void Main(string[] args) - { - int[] radii = { 15, 32, 108, 74, 9 }; - const double pi = 3.14159; - foreach (int radius in radii) { - double circumference = pi * (2 * radius); - // Display the number of command line arguments: - System.Console.WriteLine("Circumference = {0:N2}", circumference); - } - } - } -} \ No newline at end of file diff --git a/extensions/csharp/test/colorize-results/test_cs.json b/extensions/csharp/test/colorize-results/test_cs.json deleted file mode 100644 index 5893af16e9d..00000000000 --- a/extensions/csharp/test/colorize-results/test_cs.json +++ /dev/null @@ -1,1377 +0,0 @@ -[ - { - "c": "using", - "t": "source.cs keyword.other.using.cs", - "r": { - "dark_plus": "keyword.other.using: #C586C0", - "light_plus": "keyword.other.using: #AF00DB", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword.other.using: #C586C0" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "System", - "t": "source.cs entity.name.type.namespace.cs", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.cs punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "namespace", - "t": "source.cs keyword.other.namespace.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "SampleNamespace", - "t": "source.cs entity.name.type.namespace.cs", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.cs punctuation.curlybrace.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.cs keyword.other.class.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "TestClass", - "t": "source.cs entity.name.type.class.cs", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cs punctuation.curlybrace.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "static", - "t": "source.cs storage.modifier.cs", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.cs keyword.type.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Main", - "t": "source.cs entity.name.function.cs", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cs punctuation.parenthesis.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "string", - "t": "source.cs keyword.type.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "[", - "t": "source.cs punctuation.squarebracket.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.cs punctuation.squarebracket.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "args", - "t": "source.cs entity.name.variable.parameter.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.cs punctuation.parenthesis.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cs punctuation.curlybrace.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cs keyword.type.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "[", - "t": "source.cs punctuation.squarebracket.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.cs punctuation.squarebracket.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "radii", - "t": "source.cs entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.cs keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cs punctuation.curlybrace.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "15", - "t": "source.cs constant.numeric.decimal.cs", - "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" - } - }, - { - "c": ",", - "t": "source.cs punctuation.separator.comma.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "32", - "t": "source.cs constant.numeric.decimal.cs", - "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" - } - }, - { - "c": ",", - "t": "source.cs punctuation.separator.comma.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "108", - "t": "source.cs constant.numeric.decimal.cs", - "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" - } - }, - { - "c": ",", - "t": "source.cs punctuation.separator.comma.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "74", - "t": "source.cs constant.numeric.decimal.cs", - "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" - } - }, - { - "c": ",", - "t": "source.cs punctuation.separator.comma.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "9", - "t": "source.cs constant.numeric.decimal.cs", - "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" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cs punctuation.curlybrace.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cs punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "const", - "t": "source.cs storage.modifier.cs", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "double", - "t": "source.cs keyword.type.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "pi", - "t": "source.cs entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.cs keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3.14159", - "t": "source.cs constant.numeric.decimal.cs", - "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" - } - }, - { - "c": ";", - "t": "source.cs punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foreach", - "t": "source.cs keyword.control.loop.foreach.cs", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cs punctuation.parenthesis.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.cs keyword.type.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "radius", - "t": "source.cs entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.cs keyword.control.loop.in.cs", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "radii", - "t": "source.cs variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.cs punctuation.parenthesis.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.cs punctuation.curlybrace.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "double", - "t": "source.cs keyword.type.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "circumference", - "t": "source.cs entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.cs keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "pi", - "t": "source.cs variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.cs keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.cs punctuation.parenthesis.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.cs constant.numeric.decimal.cs", - "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" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.cs keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "radius", - "t": "source.cs variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.cs punctuation.parenthesis.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cs punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs punctuation.whitespace.comment.leading.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.cs comment.line.double-slash.cs punctuation.definition.comment.cs", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Display the number of command line arguments:", - "t": "source.cs comment.line.double-slash.cs", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "System", - "t": "source.cs variable.other.object.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.cs punctuation.accessor.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Console", - "t": "source.cs variable.other.object.property.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.cs punctuation.accessor.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "WriteLine", - "t": "source.cs entity.name.function.cs", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.cs punctuation.parenthesis.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.cs string.quoted.double.cs punctuation.definition.string.begin.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Circumference = {0:N2}", - "t": "source.cs string.quoted.double.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.cs string.quoted.double.cs punctuation.definition.string.end.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.cs punctuation.separator.comma.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "circumference", - "t": "source.cs variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.cs punctuation.parenthesis.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.cs punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cs punctuation.curlybrace.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cs punctuation.curlybrace.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cs punctuation.curlybrace.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.cs punctuation.curlybrace.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/css/.vscode/launch.json b/extensions/css/.vscode/launch.json deleted file mode 100644 index 2217bbd0770..00000000000 --- a/extensions/css/.vscode/launch.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Grammar", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceRoot}" - ] - } - ] -} diff --git a/extensions/css/.vscodeignore b/extensions/css/.vscodeignore deleted file mode 100644 index 52ebcbd68b2..00000000000 --- a/extensions/css/.vscodeignore +++ /dev/null @@ -1,3 +0,0 @@ -test/** -cgmanifest.json -.vscode \ No newline at end of file diff --git a/extensions/css/cgmanifest.json b/extensions/css/cgmanifest.json deleted file mode 100644 index 32e5d2fc299..00000000000 --- a/extensions/css/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "octref/language-css", - "repositoryUrl": "https://github.com/octref/language-css", - "commitHash": "dcdc1cb4403266f4ebdb1a4f526f8b6d09fd39d6" - } - }, - "license": "MIT", - "description": "The file syntaxes/css.tmLanguage.json was derived from https://github.com/octref/language-css which was derived from the Atom package https://github.com/atom/language-css which was originally converted from the TextMate bundle https://github.com/textmate/css.tmbundle.", - "version": "0.42.11" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/css/language-configuration.json b/extensions/css/language-configuration.json deleted file mode 100644 index bd3151ea17e..00000000000 --- a/extensions/css/language-configuration.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "comments": { - "blockComment": ["/*", "*/"] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}", "notIn": ["string", "comment"] }, - { "open": "[", "close": "]", "notIn": ["string", "comment"] }, - { "open": "(", "close": ")", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string", "comment"] }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ], - "folding": { - "markers": { - "start": "^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/", - "end": "^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/" - } - } -} diff --git a/extensions/css/package.json b/extensions/css/package.json deleted file mode 100644 index 117f759dd9d..00000000000 --- a/extensions/css/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "css", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js octref/language-css grammars/css.cson ./syntaxes/css.tmLanguage.json" - }, - "contributes": { - "languages": [ - { - "id": "css", - "aliases": [ - "CSS", - "css" - ], - "extensions": [ - ".css" - ], - "mimetypes": [ - "text/css" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "css", - "scopeName": "source.css", - "path": "./syntaxes/css.tmLanguage.json", - "tokenTypes": { - "meta.function.url string.quoted": "other" - } - } - ] - } -} diff --git a/extensions/css/package.nls.json b/extensions/css/package.nls.json deleted file mode 100644 index b4ff0da7673..00000000000 --- a/extensions/css/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "CSS Language Basics", - "description": "Provides syntax highlighting and bracket matching for CSS, LESS and SCSS files." -} \ No newline at end of file diff --git a/extensions/css/syntaxes/css.tmLanguage.json b/extensions/css/syntaxes/css.tmLanguage.json deleted file mode 100644 index 9a7188cd44d..00000000000 --- a/extensions/css/syntaxes/css.tmLanguage.json +++ /dev/null @@ -1,1865 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/octref/language-css/blob/master/grammars/css.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/octref/language-css/commit/dcdc1cb4403266f4ebdb1a4f526f8b6d09fd39d6", - "name": "CSS", - "scopeName": "source.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#combinators" - }, - { - "include": "#selector" - }, - { - "include": "#at-rules" - }, - { - "include": "#rule-list" - } - ], - "repository": { - "at-rules": { - "patterns": [ - { - "begin": "\\A(?:\\xEF\\xBB\\xBF)?(?i:(?=\\s*@charset\\b))", - "end": ";|(?=$)", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.charset.css", - "patterns": [ - { - "captures": { - "1": { - "name": "invalid.illegal.not-lowercase.charset.css" - }, - "2": { - "name": "invalid.illegal.leading-whitespace.charset.css" - }, - "3": { - "name": "invalid.illegal.no-whitespace.charset.css" - }, - "4": { - "name": "invalid.illegal.whitespace.charset.css" - }, - "5": { - "name": "invalid.illegal.not-double-quoted.charset.css" - }, - "6": { - "name": "invalid.illegal.unclosed-string.charset.css" - }, - "7": { - "name": "invalid.illegal.unexpected-characters.charset.css" - } - }, - "match": "(?x) # Possible errors:\n\\G\n((?!@charset)@\\w+) # Not lowercase (@charset is case-sensitive)\n|\n\\G(\\s+) # Preceding whitespace\n|\n(@charset\\S[^;]*) # No whitespace after @charset\n|\n(?<=@charset) # Before quoted charset name\n(\\x20{2,}|\\t+) # More than one space used, or a tab\n|\n(?<=@charset\\x20) # Beginning of charset name\n([^\";]+) # Not double-quoted\n|\n(\"[^\"]+$) # Unclosed quote\n|\n(?<=\") # After charset name\n([^;]+) # Unexpected junk instead of semicolon" - }, - { - "captures": { - "1": { - "name": "keyword.control.at-rule.charset.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "match": "((@)charset)(?=\\s)" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.css" - } - }, - "end": "\"|$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.css" - } - }, - "name": "string.quoted.double.css", - "patterns": [ - { - "begin": "(?:\\G|^)(?=(?:[^\"])+$)", - "end": "$", - "name": "invalid.illegal.unclosed.string.css" - } - ] - } - ] - }, - { - "begin": "(?i)((@)import)(?:\\s+|$|(?=['\"]|/\\*))", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.import.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.import.css", - "patterns": [ - { - "begin": "\\G\\s*(?=/\\*)", - "end": "(?<=\\*/)\\s*", - "patterns": [ - { - "include": "#comment-block" - } - ] - }, - { - "include": "#string" - }, - { - "include": "#url" - }, - { - "include": "#media-query-list" - } - ] - }, - { - "begin": "(?i)((@)font-face)(?=\\s*|{|/\\*|$)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.font-face.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?!\\G)", - "name": "meta.at-rule.font-face.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#rule-list" - } - ] - }, - { - "begin": "(?i)(@)page(?=[\\s:{]|/\\*|$)", - "captures": { - "0": { - "name": "keyword.control.at-rule.page.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*($|[:{;]))", - "name": "meta.at-rule.page.css", - "patterns": [ - { - "include": "#rule-list" - } - ] - }, - { - "begin": "(?i)(?=@media(\\s|\\(|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)media", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.media.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*[{;])", - "name": "meta.at-rule.media.header.css", - "patterns": [ - { - "include": "#media-query-list" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.media.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.media.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.media.body.css", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "begin": "(?i)(?=@counter-style([\\s'\"{;]|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)counter-style", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.counter-style.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*{)", - "name": "meta.at-rule.counter-style.header.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "captures": { - "0": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(?:[-a-zA-Z_] | [^\\x00-\\x7F]) # First letter\n(?:[-a-zA-Z0-9_] | [^\\x00-\\x7F] # Remainder of identifier\n |\\\\(?:[0-9a-fA-F]{1,6}|.)\n)*", - "name": "variable.parameter.style-name.css" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.property-list.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.property-list.end.bracket.curly.css" - } - }, - "name": "meta.at-rule.counter-style.body.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#rule-list-innards" - } - ] - } - ] - }, - { - "begin": "(?i)(?=@document([\\s'\"{;]|/\\*|$))", - "end": "(?<=})(?!\\G)", - "patterns": [ - { - "begin": "(?i)\\G(@)document", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.document.css" - }, - "1": { - "name": "punctuation.definition.keyword.css" - } - }, - "end": "(?=\\s*[{;])", - "name": "meta.at-rule.document.header.css", - "patterns": [ - { - "begin": "(?i)(?>>", - "name": "invalid.deprecated.combinator.css" - }, - { - "match": ">>|>|\\+|~", - "name": "keyword.operator.combinator.css" - } - ] - }, - "commas": { - "match": ",", - "name": "punctuation.separator.list.comma.css" - }, - "comment-block": { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.css" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.css" - } - }, - "name": "comment.block.css" - }, - "escapes": { - "patterns": [ - { - "match": "\\\\[0-9a-fA-F]{1,6}", - "name": "constant.character.escape.codepoint.css" - }, - { - "begin": "\\\\$\\s*", - "end": "^(?<:=]|\\)|/\\*) # Terminates cleanly" - }, - "media-feature-keywords": { - "match": "(?xi)\n(?<=^|\\s|:|\\*/)\n(?: portrait # Orientation\n | landscape\n | progressive # Scan types\n | interlace\n | fullscreen # Display modes\n | standalone\n | minimal-ui\n | browser\n)\n(?=\\s|\\)|$)", - "name": "support.constant.property-value.css" - }, - "media-query": { - "begin": "\\G", - "end": "(?=\\s*[{;])", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#escapes" - }, - { - "include": "#media-types" - }, - { - "match": "(?i)(?<=\\s|^|,|\\*/)(only|not)(?=\\s|{|/\\*|$)", - "name": "keyword.operator.logical.$1.media.css" - }, - { - "match": "(?i)(?<=\\s|^|\\*/|\\))and(?=\\s|/\\*|$)", - "name": "keyword.operator.logical.and.media.css" - }, - { - "match": ",(?:(?:\\s*,)+|(?=\\s*[;){]))", - "name": "invalid.illegal.comma.css" - }, - { - "include": "#commas" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#media-features" - }, - { - "include": "#media-feature-keywords" - }, - { - "match": ":", - "name": "punctuation.separator.key-value.css" - }, - { - "match": ">=|<=|=|<|>", - "name": "keyword.operator.comparison.css" - }, - { - "captures": { - "1": { - "name": "constant.numeric.css" - }, - "2": { - "name": "keyword.operator.arithmetic.css" - }, - "3": { - "name": "constant.numeric.css" - } - }, - "match": "(\\d+)\\s*(/)\\s*(\\d+)", - "name": "meta.ratio.css" - }, - { - "include": "#numeric-values" - }, - { - "include": "#comment-block" - } - ] - } - ] - }, - "media-query-list": { - "begin": "\\s*", - "end": "(?=\\s*[{;])", - "patterns": [ - { - "include": "#media-query" - } - ] - }, - "media-types": { - "captures": { - "1": { - "name": "support.constant.media.css" - }, - "2": { - "name": "invalid.deprecated.constant.media.css" - } - }, - "match": "(?xi)\n(?<=^|\\s|,|\\*/)\n(?:\n # Valid media types\n (all|print|screen|speech)\n |\n # Deprecated in Media Queries 4: http://dev.w3.org/csswg/mediaqueries/#media-types\n (aural|braille|embossed|handheld|projection|tty|tv)\n)\n(?=$|[{,\\s;]|/\\*)" - }, - "numeric-values": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.constant.css" - } - }, - "match": "(#)(?:[0-9a-fA-F]{3,4}|[0-9a-fA-F]{6}|[0-9a-fA-F]{8})\\b", - "name": "constant.other.color.rgb-value.hex.css" - }, - { - "captures": { - "1": { - "name": "keyword.other.unit.percentage.css" - }, - "2": { - "name": "keyword.other.unit.${2:/downcase}.css" - } - }, - "match": "(?xi) (?+~|] # - Followed by another selector\n | /\\* # - Followed by a block comment\n )\n |\n # Name contains unescaped ASCII symbol\n (?: # Check for acceptable preceding characters\n [-a-zA-Z_0-9]|[^\\x00-\\x7F] # - Valid selector character\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # - Escape sequence\n )*\n (?: # Invalid punctuation\n [!\"'%&(*;+~|] # - Another selector\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.class.css" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(\\#)\n(\n -?\n (?![0-9])\n (?:[-a-zA-Z0-9_]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n)\n(?=$|[\\s,.\\#)\\[:{>+~|]|/\\*)", - "name": "entity.other.attribute-name.id.css" - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.entity.begin.bracket.square.css" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.entity.end.bracket.square.css" - } - }, - "name": "meta.attribute-selector.css", - "patterns": [ - { - "include": "#comment-block" - }, - { - "include": "#string" - }, - { - "captures": { - "1": { - "name": "storage.modifier.ignore-case.css" - } - }, - "match": "(?<=[\"'\\s]|^|\\*/)\\s*([iI])\\s*(?=[\\s\\]]|/\\*|$)" - }, - { - "captures": { - "1": { - "name": "string.unquoted.attribute-value.css", - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)(?<==)\\s*((?!/\\*)(?:[^\\\\\"'\\s\\]]|\\\\.)+)" - }, - { - "include": "#escapes" - }, - { - "match": "[~|^$*]?=", - "name": "keyword.operator.pattern.css" - }, - { - "match": "\\|", - "name": "punctuation.separator.css" - }, - { - "captures": { - "1": { - "name": "entity.other.namespace-prefix.css", - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n# Qualified namespace prefix\n( -?(?!\\d)(?:[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+\n| \\*\n)\n# Lookahead to ensure there's a valid identifier ahead\n(?=\n \\| (?!\\s|=|$|\\])\n (?: -?(?!\\d)\n | [\\\\\\w-]\n | [^\\x00-\\x7F]\n )\n)" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.css", - "patterns": [ - { - "include": "#escapes" - } - ] - } - }, - "match": "(?x)\n(-?(?!\\d)(?>[\\w-]|[^\\x00-\\x7F]|\\\\(?:[0-9a-fA-F]{1,6}|.))+)\n\\s*\n(?=[~|^\\]$*=]|/\\*)" - } - ] - }, - { - "include": "#pseudo-classes" - }, - { - "include": "#pseudo-elements" - }, - { - "include": "#functional-pseudo-classes" - }, - { - "match": "(?x) (?\\s,.\\#|){:\\[]|/\\*|$)", - "name": "entity.name.tag.css" - }, - "unicode-range": { - "captures": { - "0": { - "name": "constant.other.unicode-range.css" - }, - "1": { - "name": "punctuation.separator.dash.unicode-range.css" - } - }, - "match": "(?> /etc/apt/sources.list -RUN apt-get update -RUN apt-get install -y nodejs -#RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1 -RUN mkdir /var/www - -ADD app.js /var/www/app.js - -CMD ["/usr/bin/node", "/var/www/app.js"] \ No newline at end of file diff --git a/extensions/docker/test/colorize-results/Dockerfile.json b/extensions/docker/test/colorize-results/Dockerfile.json deleted file mode 100644 index fcb2e004c16..00000000000 --- a/extensions/docker/test/colorize-results/Dockerfile.json +++ /dev/null @@ -1,310 +0,0 @@ -[ - { - "c": "FROM", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ubuntu", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "MAINTAINER", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " Kimbro Staken", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "RUN", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " apt-get install -y software-properties-common python", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "RUN", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " add-apt-repository ppa:chris-lea/node.js", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "RUN", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " echo ", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"deb http://us.archive.ubuntu.com/ubuntu/ precise universe\"", - "t": "source.dockerfile string.quoted.double.dockerfile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " >> /etc/apt/sources.list", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "RUN", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " apt-get update", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "RUN", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " apt-get install -y nodejs", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.dockerfile comment.line.number-sign.dockerfile punctuation.definition.comment.dockerfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "RUN apt-get install -y nodejs=0.6.12~dfsg1-1ubuntu1", - "t": "source.dockerfile comment.line.number-sign.dockerfile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "RUN", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " mkdir /var/www", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ADD", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " app.js /var/www/app.js", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "CMD", - "t": "source.dockerfile keyword.other.special-method.dockerfile", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " [", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"/usr/bin/node\"", - "t": "source.dockerfile string.quoted.double.dockerfile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ", ", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"/var/www/app.js\"", - "t": "source.dockerfile string.quoted.double.dockerfile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "] ", - "t": "source.dockerfile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/fsharp/.vscodeignore b/extensions/fsharp/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/fsharp/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/fsharp/cgmanifest.json b/extensions/fsharp/cgmanifest.json deleted file mode 100644 index b898a38669c..00000000000 --- a/extensions/fsharp/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "ionide/ionide-fsgrammar", - "repositoryUrl": "https://github.com/ionide/ionide-fsgrammar", - "commitHash": "fc4cac6d9bc1787f54ce48bbc77bcbb1de8160ff" - } - }, - "license": "MIT", - "description": "The file syntaxes/fsharp.json was included from https://github.com/ionide/ionide-fsgrammar/blob/master/grammar/fsharp.json.", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/fsharp/language-configuration.json b/extensions/fsharp/language-configuration.json deleted file mode 100644 index e4affc8deaa..00000000000 --- a/extensions/fsharp/language-configuration.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "(*", "*)" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}" }, - { "open": "[", "close": "]" }, - { "open": "(", "close": ")" }, - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ], - "folding": { - "offSide": true, - "markers": { - "start": "^\\s*//\\s*#region\\b|^\\s*\\(\\*\\s*#region(.*)\\*\\)", - "end": "^\\s*//\\s*#endregion\\b|^\\s*\\(\\*\\s*#endregion\\s*\\*\\)" - } - } -} diff --git a/extensions/fsharp/package.json b/extensions/fsharp/package.json deleted file mode 100644 index fb67e704c2c..00000000000 --- a/extensions/fsharp/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "fsharp", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js ionide/ionide-fsgrammar grammars/fsharp.json ./syntaxes/fsharp.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "fsharp", - "extensions": [ ".fs", ".fsi", ".fsx", ".fsscript" ], - "aliases": [ "F#", "FSharp", "fsharp" ], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "fsharp", - "scopeName": "source.fsharp", - "path": "./syntaxes/fsharp.tmLanguage.json" - }], - "snippets": [{ - "language": "fsharp", - "path": "./snippets/fsharp.code-snippets" - }] - } -} diff --git a/extensions/fsharp/package.nls.json b/extensions/fsharp/package.nls.json deleted file mode 100644 index 42733fffaf8..00000000000 --- a/extensions/fsharp/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "F# Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in F# files." -} \ No newline at end of file diff --git a/extensions/fsharp/snippets/fsharp.code-snippets b/extensions/fsharp/snippets/fsharp.code-snippets deleted file mode 100644 index f2640f764f4..00000000000 --- a/extensions/fsharp/snippets/fsharp.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "//#region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "//#endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/fsharp/syntaxes/fsharp.tmLanguage.json b/extensions/fsharp/syntaxes/fsharp.tmLanguage.json deleted file mode 100644 index ca06a19c2c2..00000000000 --- a/extensions/fsharp/syntaxes/fsharp.tmLanguage.json +++ /dev/null @@ -1,1802 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/ionide/ionide-fsgrammar/blob/master/grammars/fsharp.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/ionide/ionide-fsgrammar/commit/fc4cac6d9bc1787f54ce48bbc77bcbb1de8160ff", - "name": "fsharp", - "scopeName": "source.fsharp", - "patterns": [ - { - "include": "#compiler_directives" - }, - { - "include": "#comments" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "include": "#chars" - }, - { - "include": "#double_tick" - }, - { - "include": "#definition" - }, - { - "include": "#abstract_definition" - }, - { - "include": "#attributes" - }, - { - "include": "#modules" - }, - { - "include": "#anonymous_functions" - }, - { - "include": "#du_declaration" - }, - { - "include": "#record_declaration" - }, - { - "include": "#records" - }, - { - "include": "#strp_inlined" - }, - { - "include": "#keywords" - }, - { - "include": "#cexprs" - }, - { - "include": "#text" - } - ], - "repository": { - "strp_inlined_body": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#anonymous_functions" - }, - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.fsharp", - "match": "\\b(and|when|or)\\b" - }, - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#strp_inlined_body" - } - ] - }, - { - "match": "(static member|member)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)", - "captures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "variable.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - } - } - }, - { - "include": "#compiler_directives" - }, - { - "include": "#constants" - }, - { - "include": "#strings" - }, - { - "include": "#chars" - }, - { - "include": "#double_tick" - }, - { - "include": "#keywords" - }, - { - "include": "#text" - }, - { - "include": "#definition" - }, - { - "include": "#attributes" - }, - { - "include": "#keywords" - }, - { - "include": "#cexprs" - }, - { - "include": "#text" - } - ] - }, - "strp_inlined": { - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#strp_inlined_body" - } - ] - } - ] - }, - "generic_declaration": { - "patterns": [ - { - "comments": "SRTP syntax support", - "begin": "(:)\\s*(\\()\\s*(static member|member)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "match": "(('|\\^)[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - { - "name": "keyword.fsharp", - "match": "\\b(private|to|public|internal|function|yield!|yield|class|exception|match|delegate|of|new|in|as|if|then|else|elif|for|begin|end|inherit|do|let\\!|return\\!|return|interface|with|abstract|enum|member|try|finally|and|when|or|use|use\\!|struct|while|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b" - }, - { - "name": "keyword.fsharp", - "match": ":" - }, - { - "include": "#constants" - }, - { - "match": "(('|\\^)[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(<)", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(('|\\^)[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#tuple_signature" - }, - { - "include": "#generic_declaration" - } - ] - }, - { - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(([?[:alpha:]0-9'`^._ ]+))+", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#tuple_signature" - } - ] - }, - { - "match": "(?!when|and|or\\b)\\b([\\w0-9'`^._]+)", - "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(\\|)", - "comments": "Prevent captures of `|>` as a keyword when defining custom operator like `<|>`", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - "anonymous_record_declaration": { - "begin": "(\\{\\|)", - "end": "(\\|\\})", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "[[:alpha:]0-9'`^_ ]+(:)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - } - } - }, - { - "match": "([[:alpha:]0-9'`^_ ]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#anonymous_record_declaration" - }, - { - "include": "#keywords" - } - ] - }, - "record_signature": { - "patterns": [ - { - "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - } - } - }, - { - "begin": "({)", - "end": "(})", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "[[:alpha:]0-9'`^_ ]+(=)([[:alpha:]0-9'`^_ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - } - } - }, - { - "include": "#record_signature" - } - ] - }, - { - "include": "#keywords" - } - ] - }, - "tuple_signature": { - "patterns": [ - { - "match": "(([?[:alpha:]0-9'`^._ ]+))+", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(([?[:alpha:]0-9'`^._ ]+))+", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#tuple_signature" - } - ] - }, - { - "include": "#keywords" - } - ] - }, - "anonymous_functions": { - "patterns": [ - { - "name": "function.anonymous", - "begin": "\\b(fun)\\b", - "end": "(->)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(\\()", - "end": "\\s*(?=(->))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.arrow.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "include": "#variables" - } - ] - } - ] - }, - "attributes": { - "patterns": [ - { - "name": "support.function.attribute.fsharp", - "begin": "\\[\\<", - "end": "\\>\\]|\\]", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.block.markdown.fsharp", - "begin": "^\\s*(\\(\\*\\*(?!\\)))(?!\\*\\))$", - "while": "^(?!\\s*\\*\\)$)", - "beginCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "patterns": [ - { - "include": "text.html.markdown" - } - ] - }, - { - "name": "comment.block.fsharp", - "begin": "(\\(\\*(?!\\)))", - "end": "(\\*\\))", - "beginCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "comment.block.fsharp" - } - }, - "patterns": [ - { - "comments": "Capture // when inside of (* *) like that the rule which capture comments starting by // is not trigger. See https://github.com/ionide/ionide-fsgrammar/issues/155", - "name": "fast-capture.comment.line.double-slash.fsharp", - "match": "//" - }, - { - "include": "#comments" - } - ] - }, - { - "name": "comment.block.markdown.fsharp.end", - "match": "(\\*\\))", - "captures": { - "1": { - "name": "comment.block.fsharp" - } - } - }, - { - "name": "comment.line.markdown.fsharp", - "begin": "///", - "while": "///", - "patterns": [ - { - "include": "text.html.markdown" - } - ] - }, - { - "name": "comment.line.double-slash.fsharp", - "match": "//.*$" - } - ] - }, - "constants": { - "patterns": [ - { - "name": "constant.language.unit.fsharp", - "match": "\\(\\)" - }, - { - "name": "constant.numeric.float.fsharp", - "match": "\\b-?[0-9][0-9_]*((\\.([0-9][0-9_]*([eE][+-]??[0-9][0-9_]*)?)?)|([eE][+-]??[0-9][0-9_]*))" - }, - { - "name": "constant.numeric.integer.nativeint.fsharp", - "match": "\\b(-?((0(x|X)[0-9a-fA-F][0-9a-fA-F_]*)|(0(o|O)[0-7][0-7_]*)|(0(b|B)[01][01_]*)|([0-9][0-9_]*)))" - }, - { - "name": "constant.other.fsharp", - "match": "\\b(true|false|null|unit|void)\\b" - } - ] - }, - "abstract_definition": { - "name": "abstract.definition.fsharp", - "begin": "\\b(abstract)\\s+(member)?(\\s+\\[\\<.*\\>\\])?\\s*([_[:alpha:]0-9,\\._`\\s]+)(:)", - "end": "\\s*(with)\\b|=|$", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "support.function.attribute.fsharp" - }, - "5": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#common_declaration" - }, - { - "match": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)((?!with\\b)\\b([\\w0-9'`^._ ]+)){0,1}", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - }, - "4": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(?!with|get|set\\b)\\b([\\w0-9'`^._]+)", - "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - "common_binding_definition": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#attributes" - }, - { - "comments": "SRTP syntax support", - "begin": "(:)\\s*(\\()\\s*(static member|member)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(\\))\\s*((?=,)|(?=\\=))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - { - "begin": "(:)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]*)))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - }, - "patterns": [ - { - "include": "#tuple_signature" - } - ] - }, - { - "begin": "(:)\\s*(\\^[[:alpha:]0-9'._]+)\\s*(when)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(?=:)", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "name": "keyword.fsharp", - "match": "\\b(and|when|or)\\b" - }, - { - "comment": "Because we first capture the keywords, we can capture what looks like a word and assume it's an entity definition", - "match": "([[:alpha:]0-9'^._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.symbol.fsharp", - "match": "(\\(|\\))" - } - ] - }, - { - "match": "(:)\\s*([?[:alpha:]0-9'`^._ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(->)\\s*(\\()?\\s*([?[:alpha:]0-9'`^._ ]+)*", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(\\*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\)\\s*(([?[:alpha:]0-9'`^._ ]+))+)", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - }, - "patterns": [ - { - "include": "#tuple_signature" - } - ] - }, - { - "begin": "(\\*)(\\s*([?[:alpha:]0-9'`^._ ]+))*", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - }, - "end": "(?==)|(?=\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#tuple_signature" - } - ] - }, - { - "begin": "(<+(?![[:space:]]*\\)))", - "beginComment": "The group (?![[:space:]]*\\) is for protection against overload operator. static member (<)", - "end": "((?|\\))", - "endComment": "The group (? when using SRTP synthax", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#generic_declaration" - } - ] - }, - { - "include": "#anonymous_record_declaration" - }, - { - "begin": "({)", - "end": "(})", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#record_signature" - } - ] - }, - { - "include": "#definition" - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - "definition": { - "patterns": [ - { - "name": "binding.fsharp", - "begin": "\\b(let mutable|static let mutable|static let|let inline|let|member val|static member inline|static member|default|member|override|let!)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", - "end": "\\s*(with\\b|=|\\n+=|(?<=\\=))", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "support.function.attribute.fsharp" - }, - "4": { - "name": "storage.modifier.fsharp" - }, - "5": { - "name": "variable.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - }, - { - "name": "binding.fsharp", - "begin": "(?<=with|and)\\s*\\b((get|set)\\s*(?=\\())(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9\\._`\\s]+|(?<=,)\\s)*)?", - "end": "\\s*(=|\\n+=|(?<=\\=))", - "beginCaptures": { - "4": { - "name": "variable.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - }, - { - "name": "binding.fsharp", - "begin": "\\b(static val mutable|val mutable|val)(\\s+rec|mutable)?(\\s+\\[\\<.*\\>\\])?\\s*(private|internal|public)?\\s+(\\[[^-=]*\\]|[_[:alpha:]]([_[:alpha:]0-9,\\._]+)*|``[_[:alpha:]]([_[:alpha:]0-9,\\._`\\s]+|(?<=,)\\s)*)?", - "end": "\\n$", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "support.function.attribute.fsharp" - }, - "4": { - "name": "storage.modifier.fsharp" - }, - "5": { - "name": "variable.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - }, - { - "name": "binding.fsharp", - "begin": "\\b(new)\\b\\s+(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "patterns": [ - { - "include": "#common_binding_definition" - } - ] - } - ] - }, - "du_declaration": { - "patterns": [ - { - "name": "du_declaration.fsharp", - "begin": "\\b(of)\\b", - "end": "$|(\\|)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)\\s*(:)\\s*([[:alpha:]0-9'`<>^._]+|``[[:alpha:]0-9' <>^._]+``)", - "captures": { - "1": { - "name": "variable.parameter.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "match": "(``([[:alpha:]0-9'^._ ]+)``|[[:alpha:]0-9'`^._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#anonymous_record_declaration" - }, - { - "include": "#keywords" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "name": "storage.modifier", - "match": "\\b(private|public|internal)\\b" - }, - { - "name": "keyword.fsharp", - "match": "\\b(private|to|public|internal|function|class|exception|delegate|of|as|begin|end|inherit|let!|interface|abstract|enum|member|and|when|or|use|use\\!|struct|mutable|assert|base|done|downcast|downto|extern|fixed|global|lazy|upcast|not)(?!')\\b" - }, - { - "name": "keyword.control", - "match": "\\b(match|yield|yield!|with|if|then|else|elif|for|in|return!|return|try|finally|while|do)(?!')\\b" - }, - { - "name": "keyword.symbol.new", - "match": "\\b(new)\\b" - }, - { - "name": "keyword.symbol.fsharp", - "match": "(&&&|\\|\\|\\||\\^\\^\\^|~~~|<<<|>>>|\\|>|\\->|\\<\\-|:>|:\\?>|:|\\[|\\]|\\;|<>|=|@|\\|\\||&&|{|}|\\||_|\\.\\.|\\,|\\+|\\-|\\*|\\/|\\^|\\!|\\>|\\>\\=|\\>\\>|\\<|\\<\\=|\\(|\\)|\\<\\<)" - } - ] - }, - "modules": { - "patterns": [ - { - "name": "entity.name.section.fsharp", - "begin": "\\b(namespace global)|\\b(namespace|module)\\s*(public|internal|private|rec)?\\s+([[:alpha:]][[:alpha:]0-9'_. ]*)", - "end": "(\\s?=|\\s|$)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "storage.modifier.fsharp" - }, - "4": { - "name": "entity.name.section.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "name": "entity.name.section.fsharp", - "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)", - "captures": { - "1": { - "name": "punctuation.separator.namespace-reference.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - } - } - ] - }, - { - "name": "namespace.open.fsharp", - "begin": "\\b(open)\\s+([[:alpha:]][[:alpha:]0-9'_]*)(?=(\\.[A-Z][[:alpha:]0-9_]*)*)", - "end": "(\\s|$)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - }, - "patterns": [ - { - "name": "entity.name.section.fsharp", - "match": "(\\.)([[:alpha:]][[:alpha:]0-9'_]*)", - "captures": { - "1": { - "name": "punctuation.separator.namespace-reference.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - } - }, - { - "include": "#comments" - } - ] - }, - { - "name": "namespace.alias.fsharp", - "begin": "^\\s*(module)\\s+([A-Z][[:alpha:]0-9'_]*)\\s*(=)\\s*([A-Z][[:alpha:]0-9'_]*)", - "end": "(\\s|$)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "entity.name.type.namespace.fsharp" - }, - "3": { - "name": "punctuation.separator.namespace-definition.fsharp" - }, - "4": { - "name": "entity.name.section.fsharp" - } - }, - "patterns": [ - { - "name": "entity.name.section.fsharp", - "match": "(\\.)([A-Z][[:alpha:]0-9'_]*)", - "captures": { - "1": { - "name": "punctuation.separator.namespace-reference.fsharp" - }, - "2": { - "name": "entity.name.section.fsharp" - } - } - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "name": "string.quoted.literal.fsharp", - "begin": "(?=[^\\\\])(@\")", - "end": "(\")(?!\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.fsharp" - } - }, - "patterns": [ - { - "name": "constant.character.string.escape.fsharp", - "match": "\"(\")" - } - ] - }, - { - "name": "string.quoted.triple.fsharp", - "begin": "(?=[^\\\\])(\"\"\")", - "end": "(\"\"\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.fsharp" - } - }, - "patterns": [ - { - "include": "#string_formatter" - } - ] - }, - { - "name": "string.quoted.double.fsharp", - "begin": "(?=[^\\\\])(\")", - "end": "(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.fsharp" - } - }, - "patterns": [ - { - "name": "punctuation.separator.string.ignore-eol.fsharp", - "match": "\\\\$[ \\t]*" - }, - { - "name": "constant.character.string.escape.fsharp", - "match": "\\\\([\\\\''ntbr]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})" - }, - { - "name": "invalid.illeagal.character.string.fsharp", - "match": "\\\\(?![\\\\''ntbr]|x[a-fA-F0-9]{2}|u[a-fA-F0-9]{4}|u[a-fA-F0-9]{8})." - }, - { - "include": "#string_formatter" - } - ] - } - ] - }, - "string_formatter": { - "patterns": [ - { - "name": "entity.name.type.format.specifier.fsharp", - "match": "(%0?-?(\\d+)?((a|t)|(\\.\\d+)?(f|F|e|E|g|G|M)|(b|c|s|d|i|x|X|o|u)|(s|b|O)|(\\+?A)))", - "captures": { - "1": { - "name": "keyword.format.specifier.fsharp" - } - } - } - ] - }, - "variables": { - "patterns": [ - { - "name": "constant.language.unit.fsharp", - "match": "\\(\\)" - }, - { - "match": "(\\?{0,1})(``[[:alpha:]0-9'`^:,._ ]+``|(?!private\\b)\\b[\\w[:alpha:]0-9'`<>^._ ]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - } - } - } - ] - }, - "common_declaration": { - "patterns": [ - { - "begin": "\\s*(->)\\s*([[:alpha:]0-9'`^._ ]+)(<)", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "([[:alpha:]0-9'`^._ ]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - { - "match": "\\s*(->)\\s*(?!with|get|set\\b)\\b([\\w0-9'`^._]+)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#anonymous_record_declaration" - }, - { - "begin": "(\\?{0,1})([[:alpha:]0-9'`^._ ]+)\\s*(:)(\\s*([?[:alpha:]0-9'`^._ ]+)(<))", - "end": "(>)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - }, - "4": { - "name": "keyword.symbol.fsharp" - }, - "5": { - "name": "entity.name.type.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "([[:alpha:]0-9'`^._ ]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - } - ] - }, - "member_declaration": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#common_declaration" - }, - { - "comments": "SRTP syntax support", - "begin": "(:)\\s*(\\()\\s*(static member|member)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "keyword.symbol.fsharp" - }, - "3": { - "name": "keyword.fsharp" - } - }, - "end": "(\\))\\s*((?=,)|(?=\\=))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#variables" - }, - { - "include": "#keywords" - } - ] - }, - { - "match": "(\\^[[:alpha:]0-9'._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.fsharp", - "match": "\\b(and|when|or)\\b" - }, - { - "name": "keyword.symbol.fsharp", - "match": "(\\(|\\))" - }, - { - "match": "(\\?{0,1})([[:alpha:]0-9'`^._]+|``[[:alpha:]0-9'`^:,._ ]+``)\\s*(:{0,1})(\\s*([?[:alpha:]0-9'`<>._ ]+)){0,1}", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "variable.parameter.fsharp" - }, - "3": { - "name": "keyword.symbol.fsharp" - }, - "4": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - "double_tick": { - "patterns": [ - { - "name": "variable.other.binding.fsharp", - "match": "(``)([^`]*)(``)", - "captures": { - "1": { - "name": "string.quoted.single.fsharp" - }, - "2": { - "name": "variable.other.binding.fsharp" - }, - "3": { - "name": "string.quoted.single.fsharp" - } - } - } - ] - }, - "records": { - "patterns": [ - { - "name": "record.fsharp", - "begin": "\\b(type)[\\s]+(private|internal|public)?\\s*", - "end": "\\s*((with)|((as)\\s+([[:alpha:]0-9']+))|(=)|[\\n=]|(\\(\\)))", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - }, - "2": { - "name": "storage.modifier.fsharp" - } - }, - "endCaptures": { - "2": { - "name": "keyword.fsharp" - }, - "3": { - "name": "keyword.fsharp" - }, - "4": { - "name": "keyword.fsharp" - }, - "5": { - "name": "variable.parameter.fsharp" - }, - "6": { - "name": "keyword.symbol.fsharp" - }, - "7": { - "name": "constant.language.unit.fsharp" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#attributes" - }, - { - "match": "([[:alpha:]0-9'^._]+|``[[:alpha:]0-9'`^:,._ ]+``)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "begin": "(<)", - "end": "((?)", - "beginCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.fsharp" - } - }, - "patterns": [ - { - "match": "(('|\\^)``[[:alpha:]0-9`^:,._ ]+``|('|\\^)[[:alpha:]0-9`^:._]+)", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "name": "keyword.fsharp", - "match": "\\b(interface|with|abstract|and|when|or|not|struct|equality|comparison|unmanaged|delegate|enum)\\b" - }, - { - "begin": "(\\()", - "end": "(\\))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "match": "(static member|member|new)", - "captures": { - "1": { - "name": "keyword.fsharp" - } - } - }, - { - "include": "#common_binding_definition" - } - ] - }, - { - "match": "([\\w0-9'`^._]+)", - "comments": "Here we need the \\w modifier in order to check that the words isn't blacklisted", - "captures": { - "1": { - "name": "entity.name.type.fsharp" - } - } - }, - { - "include": "#keywords" - } - ] - }, - { - "match": "\\s*(private|internal|public)", - "captures": { - "1": { - "name": "keyword.symbol.fsharp" - }, - "2": { - "name": "storage.modifier.fsharp" - } - } - }, - { - "begin": "(\\()", - "end": "\\s*(?=(=)|[\\n=]|(\\(\\))|(as))", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "endCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "patterns": [ - { - "include": "#member_declaration" - } - ] - }, - { - "include": "#keywords" - } - ] - } - ] - }, - "record_declaration": { - "patterns": [ - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "keyword.symbol.fsharp" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(((mutable)\\s[[:alpha:]]+)|[[:alpha:]0-9'`<>^._]*)\\s*((?= targetAge - override this.ToString () = - "Name: " + name + "\n" + "Age: " + (string)internalAge \ No newline at end of file diff --git a/extensions/fsharp/test/colorize-results/test_fs.json b/extensions/fsharp/test/colorize-results/test_fs.json deleted file mode 100644 index 5b4d901897e..00000000000 --- a/extensions/fsharp/test/colorize-results/test_fs.json +++ /dev/null @@ -1,1399 +0,0 @@ -[ - { - "c": "// from https://msdn.microsoft.com/en-us/library/dd233160.aspx", - "t": "source.fsharp comment.line.double-slash.fsharp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "// The declaration creates a constructor that takes two values, name and age.", - "t": "source.fsharp comment.line.double-slash.fsharp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "type", - "t": "source.fsharp record.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp record.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Person", - "t": "source.fsharp record.fsharp entity.name.type.fsharp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "(", - "t": "source.fsharp record.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "name", - "t": "source.fsharp record.fsharp variable.parameter.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.fsharp record.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "string", - "t": "source.fsharp record.fsharp entity.name.type.fsharp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.fsharp record.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp record.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "age", - "t": "source.fsharp record.fsharp variable.parameter.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.fsharp record.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "int", - "t": "source.fsharp record.fsharp entity.name.type.fsharp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.fsharp record.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp record.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp record.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let mutable", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "internalAge", - "t": "source.fsharp binding.fsharp variable.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " age", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.fsharp keyword.symbol.new", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "(", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "name", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "string", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " Person", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "name", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.fsharp constant.numeric.integer.nativeint.fsharp", - "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" - } - }, - { - "c": ")", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "member", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this.Name", - "t": "source.fsharp binding.fsharp variable.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " name", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "// A read/write property.", - "t": "source.fsharp comment.line.double-slash.fsharp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "member", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this.Age", - "t": "source.fsharp binding.fsharp variable.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "with", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " get", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "()", - "t": "source.fsharp binding.fsharp constant.language.unit.fsharp", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " internalAge", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "and", - "t": "source.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " set", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.fsharp binding.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "value", - "t": "source.fsharp binding.fsharp variable.parameter.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.fsharp binding.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " internalAge ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<-", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " value", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "member", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this.HasABirthday", - "t": "source.fsharp binding.fsharp variable.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp variable.parameter.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "()", - "t": "source.fsharp binding.fsharp constant.language.unit.fsharp", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " internalAge ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<-", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " internalAge ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.fsharp constant.numeric.integer.nativeint.fsharp", - "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" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "member", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this.IsOfAge", - "t": "source.fsharp binding.fsharp variable.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " targetAge ", - "t": "source.fsharp binding.fsharp variable.parameter.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " internalAge ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">=", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " targetAge", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "override", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this.ToString", - "t": "source.fsharp binding.fsharp variable.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp variable.parameter.fsharp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "()", - "t": "source.fsharp binding.fsharp constant.language.unit.fsharp", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp binding.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.fsharp binding.fsharp keyword.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.fsharp string.quoted.double.fsharp punctuation.definition.string.begin.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Name: ", - "t": "source.fsharp string.quoted.double.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.fsharp string.quoted.double.fsharp punctuation.definition.string.end.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " name ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.fsharp string.quoted.double.fsharp punctuation.definition.string.begin.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\n", - "t": "source.fsharp string.quoted.double.fsharp constant.character.string.escape.fsharp", - "r": { - "dark_plus": "constant.character: #569CD6", - "light_plus": "constant.character: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\"", - "t": "source.fsharp string.quoted.double.fsharp punctuation.definition.string.end.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.fsharp string.quoted.double.fsharp punctuation.definition.string.begin.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Age: ", - "t": "source.fsharp string.quoted.double.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.fsharp string.quoted.double.fsharp punctuation.definition.string.end.fsharp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "string", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.fsharp keyword.symbol.fsharp", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "internalAge", - "t": "source.fsharp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/go/.vscodeignore b/extensions/go/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/go/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/go/cgmanifest.json b/extensions/go/cgmanifest.json deleted file mode 100644 index f47768ba861..00000000000 --- a/extensions/go/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "better-go-syntax", - "repositoryUrl": "https://github.com/jeff-hykin/better-go-syntax/ ", - "commitHash": "54ff898316f8647d77ffcf83880a9556445326f1" - } - }, - "license": "MIT", - "description": "The file syntaxes/go.tmLanguage.json is from https://github.com/jeff-hykin/better-go-syntax/ .", - "version": "1.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/go/language-configuration.json b/extensions/go/language-configuration.json deleted file mode 100644 index a5e06a56bad..00000000000 --- a/extensions/go/language-configuration.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "`", "close": "`", "notIn": ["string"]}, - { "open": "\"", "close": "\"", "notIn": ["string"]}, - { "open": "'", "close": "'", "notIn": ["string", "comment"]} - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["`", "`"] - ], - "indentationRules": { - "increaseIndentPattern": "^.*(\\bcase\\b.*:|\\bdefault\\b:|(\\b(func|if|else|switch|select|for|struct)\\b.*)?{[^}\"'`]*|\\([^)\"'`]*)$", - "decreaseIndentPattern": "^\\s*(\\bcase\\b.*:|\\bdefault\\b:|}[)}]*[),]?|\\)[,]?)$" - }, - "folding": { - "markers": { - "start": "^\\s*//\\s*#?region\\b", - "end": "^\\s*//\\s*#?endregion\\b" - } - } -} \ No newline at end of file diff --git a/extensions/go/package.json b/extensions/go/package.json deleted file mode 100644 index 76116b3cd74..00000000000 --- a/extensions/go/package.json +++ /dev/null @@ -1,40 +0,0 @@ -{ - "name": "go", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js jeff-hykin/better-go-syntax export/generated.tmLanguage.json ./syntaxes/go.tmLanguage.json" - }, - "contributes": { - "languages": [ - { - "id": "go", - "extensions": [ - ".go" - ], - "aliases": [ - "Go" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "go", - "scopeName": "source.go", - "path": "./syntaxes/go.tmLanguage.json" - } - ], - "configurationDefaults": { - "[go]": { - "editor.insertSpaces": false - } - } - } -} diff --git a/extensions/go/package.nls.json b/extensions/go/package.nls.json deleted file mode 100644 index dfd2ae9f474..00000000000 --- a/extensions/go/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Go Language Basics", - "description": "Provides syntax highlighting and bracket matching in Go files." -} \ No newline at end of file diff --git a/extensions/go/syntaxes/go.tmLanguage.json b/extensions/go/syntaxes/go.tmLanguage.json deleted file mode 100644 index 9aa700887ea..00000000000 --- a/extensions/go/syntaxes/go.tmLanguage.json +++ /dev/null @@ -1,1017 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/better-go-syntax/blob/master/export/generated.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/better-go-syntax/commit/6175663a7a0e23d58ccf9aab95054cb6e5c92aff", - "name": "Go", - "scopeName": "source.go", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#comments" - }, - { - "comment": "Interpreted string literals", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.go" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.go" - } - }, - "name": "string.quoted.double.go", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "comment": "Raw string literals", - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.go" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.go" - } - }, - "name": "string.quoted.raw.go", - "patterns": [ - { - "include": "#string_placeholder" - } - ] - }, - { - "comment": "Syntax error receiving channels", - "match": "<\\-([\\t ]+)chan\\b", - "captures": { - "1": { - "name": "invalid.illegal.receive-channel.go" - } - } - }, - { - "comment": "Syntax error sending channels", - "match": "\\bchan([\\t ]+)<-", - "captures": { - "1": { - "name": "invalid.illegal.send-channel.go" - } - } - }, - { - "comment": "Syntax error using slices", - "match": "\\[\\](\\s+)", - "captures": { - "1": { - "name": "invalid.illegal.slice.go" - } - } - }, - { - "comment": "Syntax error numeric literals", - "match": "\\b0[0-7]*[89]\\d*\\b", - "name": "invalid.illegal.numeric.go" - }, - { - "comment": "Built-in functions", - "match": "\\b(append|cap|close|complex|copy|delete|imag|len|make|new|panic|print|println|real|recover)\\b(?=\\()", - "name": "support.function.builtin.go" - }, - { - "comment": "Function declarations", - "match": "^(\\bfunc\\b)(?:\\s+(\\([^\\)]+\\)\\s+)?(\\w+)(?=\\())?", - "captures": { - "1": { - "name": "keyword.function.go" - }, - "2": { - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#operators" - } - ] - }, - "3": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "entity.name.function.go" - } - ] - } - } - }, - { - "comment": "Functions", - "match": "(\\bfunc\\b)|(\\w+)(?=\\()", - "captures": { - "1": { - "name": "keyword.function.go" - }, - "2": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "support.function.go" - } - ] - } - } - }, - { - "include": "#numeric_literals" - }, - { - "comment": "Language constants", - "match": "\\b(true|false|nil|iota)\\b", - "name": "constant.language.go" - }, - { - "begin": "\\b(package)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.package.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "entity.name.package.go" - } - ] - }, - { - "begin": "\\b(type)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.type.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "entity.name.type.go" - } - ] - }, - { - "begin": "\\b(import)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.import.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#imports" - } - ] - }, - { - "begin": "\\b(var)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.var.go" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#variables" - } - ] - }, - { - "match": "(?,\\s*\\w+(?:\\.\\w+)*)*)(?=\\s*=(?!=))", - "captures": { - "1": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+(?:\\.\\w+)*", - "name": "variable.other.assignment.go", - "captures": { - "0": { - "patterns": [ - { - "include": "#delimiters" - } - ] - } - } - }, - { - "include": "#delimiters" - } - ] - } - } - }, - { - "match": "\\b\\w+(?:,\\s*\\w+)*(?=\\s*:=)", - "captures": { - "0": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "variable.other.assignment.go" - }, - { - "include": "#delimiters" - } - ] - } - } - }, - { - "comment": "Terminators", - "match": ";", - "name": "punctuation.terminator.go" - }, - { - "include": "#brackets" - }, - { - "include": "#delimiters" - }, - { - "include": "#keywords" - }, - { - "include": "#operators" - }, - { - "include": "#runes" - }, - { - "include": "#storage_types" - } - ], - "repository": { - "brackets": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.curly.go" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.curly.go" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.round.go" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.round.go" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "\\[|\\]", - "name": "punctuation.definition.bracket.square.go" - } - ] - }, - "comments": { - "patterns": [ - { - "name": "comment.block.go", - "begin": "(\\/\\*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.go" - } - }, - "end": "(\\*\\/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.comment.go" - } - } - }, - { - "name": "comment.line.double-slash.go", - "begin": "(\\/\\/)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.go" - } - }, - "end": "(?:\\n|$)" - } - ] - }, - "delimiters": { - "patterns": [ - { - "match": ",", - "name": "punctuation.other.comma.go" - }, - { - "match": "\\.(?!\\.\\.)", - "name": "punctuation.other.period.go" - }, - { - "match": ":(?!=)", - "name": "punctuation.other.colon.go" - } - ] - }, - "imports": { - "patterns": [ - { - "match": "((?!\\s+\")[^\\s]*)?\\s*((\")([^\"]*)(\"))", - "captures": { - "1": { - "name": "entity.alias.import.go" - }, - "2": { - "name": "string.quoted.double.go" - }, - "3": { - "name": "punctuation.definition.string.begin.go" - }, - "4": { - "name": "entity.name.import.go" - }, - "5": { - "name": "punctuation.definition.string.end.go" - } - } - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.imports.begin.bracket.round.go" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.imports.end.bracket.round.go" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#imports" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "comment": "Flow control keywords", - "match": "\\b(break|case|continue|default|defer|else|fallthrough|for|go|goto|if|range|return|select|switch)\\b", - "name": "keyword.control.go" - }, - { - "match": "\\bchan\\b", - "name": "keyword.channel.go" - }, - { - "match": "\\bconst\\b", - "name": "keyword.const.go" - }, - { - "match": "\\bfunc\\b", - "name": "keyword.function.go" - }, - { - "match": "\\binterface\\b", - "name": "keyword.interface.go" - }, - { - "match": "\\bmap\\b", - "name": "keyword.map.go" - }, - { - "match": "\\bstruct\\b", - "name": "keyword.struct.go" - } - ] - }, - "operators": { - "comment": "Note that the order here is very important!", - "patterns": [ - { - "match": "(\\*|&)(?=\\w)", - "name": "keyword.operator.address.go" - }, - { - "match": "<\\-", - "name": "keyword.operator.channel.go" - }, - { - "match": "\\-\\-", - "name": "keyword.operator.decrement.go" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.go" - }, - { - "match": "(==|!=|<=|>=|<(?!<)|>(?!>))", - "name": "keyword.operator.comparison.go" - }, - { - "match": "(&&|\\|\\||!)", - "name": "keyword.operator.logical.go" - }, - { - "match": "(=|\\+=|\\-=|\\|=|\\^=|\\*=|/=|:=|%=|<<=|>>=|&\\^=|&=)", - "name": "keyword.operator.assignment.go" - }, - { - "match": "(\\+|\\-|\\*|/|%)", - "name": "keyword.operator.arithmetic.go" - }, - { - "match": "(&(?!\\^)|\\||\\^|&\\^|<<|>>)", - "name": "keyword.operator.arithmetic.bitwise.go" - }, - { - "match": "\\.\\.\\.", - "name": "keyword.operator.ellipsis.go" - } - ] - }, - "runes": { - "patterns": [ - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.go" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.go" - } - }, - "name": "string.quoted.rune.go", - "patterns": [ - { - "match": "\\G(\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})|.)(?=')", - "name": "constant.other.rune.go" - }, - { - "match": "[^']+", - "name": "invalid.illegal.unknown-rune.go" - } - ] - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "\\bbool\\b", - "name": "storage.type.boolean.go" - }, - { - "match": "\\bbyte\\b", - "name": "storage.type.byte.go" - }, - { - "match": "\\berror\\b", - "name": "storage.type.error.go" - }, - { - "match": "\\b(complex(64|128)|float(32|64)|u?int(8|16|32|64)?)\\b", - "name": "storage.type.numeric.go" - }, - { - "match": "\\brune\\b", - "name": "storage.type.rune.go" - }, - { - "match": "\\bstring\\b", - "name": "storage.type.string.go" - }, - { - "match": "\\buintptr\\b", - "name": "storage.type.uintptr.go" - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "\\\\([0-7]{3}|[abfnrtv\\\\'\"]|x[0-9a-fA-F]{2}|u[0-9a-fA-F]{4}|U[0-9a-fA-F]{8})", - "name": "constant.character.escape.go" - }, - { - "match": "\\\\[^0-7xuUabfnrtv\\'\"]", - "name": "invalid.illegal.unknown-escape.go" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "%(\\[\\d+\\])?([\\+#\\-0\\x20]{,2}((\\d+|\\*)?(\\.?(\\d+|\\*|(\\[\\d+\\])\\*?)?(\\[\\d+\\])?)?))?[vT%tbcdoqxXUbeEfFgGspw]", - "name": "constant.other.placeholder.go" - } - ] - }, - "variables": { - "patterns": [ - { - "match": "(\\w+(?:,\\s*\\w+)*)(\\s+\\*?\\w+(?:\\.\\w+)?\\s*)?(?=\\s*=)", - "captures": { - "1": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "variable.other.assignment.go" - }, - { - "include": "#delimiters" - } - ] - }, - "2": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "match": "(\\w+(?:,\\s*\\w+)*)(\\s+(\\[(\\d*|\\.\\.\\.)\\])*\\*?(<-)?\\w+(?:\\.\\w+)?\\s*[^=].*)", - "captures": { - "1": { - "patterns": [ - { - "match": "\\d\\w*", - "name": "invalid.illegal.identifier.go" - }, - { - "match": "\\w+", - "name": "variable.other.declaration.go" - }, - { - "include": "#delimiters" - } - ] - }, - "2": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variables.begin.bracket.round.go" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.variables.end.bracket.round.go" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "numeric_literals": { - "match": "(?", - "\t$0", - "}" - ], - "description": "Closure block" - }, - "for(… in …) { … }": { - "prefix": "forin", - "body": [ - "for (${1:element} in ${2:collection}) {", - "\t$0", - "}" - ], - "description": "For-loop" - }, - "mkdir(dir: …)": { - "prefix": "mkdir", - "body": "mkdir(dir:\"${1:dirName}\")", - "description": "mkdir" - }, - "print": { - "prefix": "p", - "body": "print $0", - "description": "print" - }, - "println ": { - "prefix": "pl", - "body": "println $0", - "description": "println" - }, - "runAfter() { … }": { - "prefix": "runa", - "body": [ - "runAfter(${1:delay}) {", - "\t$0", - "}" - ], - "description": "runAfter() { ... }" - }, - "setUp() { … }": { - "prefix": "setup", - "body": [ - "void setUp() {", - "\t$0", - "}" - ], - "description": "setup() { ... }" - }, - "sleep(secs) { … // on interrupt do }": { - "prefix": "sleep", - "body": [ - "sleep(${1:secs}) {", - "\t${2:// on interrupt do}", - "}" - ], - "description": "sleep with interrupt" - }, - "sleep(secs)": { - "prefix": "sleep", - "body": "sleep(${1:secs})", - "description": "sleep" - }, - "sort { … }": { - "prefix": "sort", - "body": [ - "sort { ", - "\t$0", - "}" - ], - "description": "sort" - }, - "static main() { … }": { - "prefix": "main", - "body": [ - "static main(args) {", - "\t$0", - "}" - ], - "description": "main method" - }, - "switch … case": { - "prefix": "switch", - "body": [ - "switch(${1:value}) {", - "\tcase ${2:CASE}:", - "\t\t$3", - "\tbreak$0", - "}" - ], - "description": "Switch-Case block" - }, - "switch … case … default": { - "prefix": "switch", - "body": [ - "switch(${1:value}) {", - "\tcase ${3:CASE}:", - "\t\t$4", - "\tbreak$0", - "\tdefault:", - "\t\t$2", - "\tbreak", - "}" - ], - "description": "Switch-Case-Default block" - }, - "tearDown() { … }": { - "prefix": "tear", - "body": [ - "void tearDown() {", - "\t$0", - "}" - ], - "description": "tearDown() { ... }" - }, - "test()": { - "prefix": "t", - "body": [ - "void test$1() {", - "\t$0", - "}" - ], - "description": "test method" - }, - "var": { - "prefix": "v", - "body": "${1:def} ${2:var}${3: = ${0:null}}", - "description": "var" - } -} \ No newline at end of file diff --git a/extensions/groovy/syntaxes/groovy.tmLanguage.json b/extensions/groovy/syntaxes/groovy.tmLanguage.json deleted file mode 100644 index 57ebab39405..00000000000 --- a/extensions/groovy/syntaxes/groovy.tmLanguage.json +++ /dev/null @@ -1,1383 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/groovy.tmbundle/blob/master/Syntaxes/Groovy.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/groovy.tmbundle/commit/85d8f7c97ae473ccb9473f6c8d27e4ec957f4be1", - "name": "Groovy", - "scopeName": "source.groovy", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.groovy" - } - }, - "match": "^(#!).+$\\n", - "name": "comment.line.hashbang.groovy" - }, - { - "captures": { - "1": { - "name": "keyword.other.package.groovy" - }, - "2": { - "name": "storage.modifier.package.groovy" - }, - "3": { - "name": "punctuation.terminator.groovy" - } - }, - "match": "^\\s*(package)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", - "name": "meta.package.groovy" - }, - { - "begin": "(import static)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.import.static.groovy" - } - }, - "captures": { - "1": { - "name": "keyword.other.import.groovy" - }, - "2": { - "name": "storage.modifier.import.groovy" - }, - "3": { - "name": "punctuation.terminator.groovy" - } - }, - "contentName": "storage.modifier.import.groovy", - "end": "\\s*(?:$|(?=%>)(;))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.groovy" - } - }, - "name": "meta.import.groovy", - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.groovy" - }, - { - "match": "\\s", - "name": "invalid.illegal.character_not_allowed_here.groovy" - } - ] - }, - { - "begin": "(import)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.import.groovy" - } - }, - "captures": { - "1": { - "name": "keyword.other.import.groovy" - }, - "2": { - "name": "storage.modifier.import.groovy" - }, - "3": { - "name": "punctuation.terminator.groovy" - } - }, - "contentName": "storage.modifier.import.groovy", - "end": "\\s*(?:$|(?=%>)|(;))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.groovy" - } - }, - "name": "meta.import.groovy", - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.groovy" - }, - { - "match": "\\s", - "name": "invalid.illegal.character_not_allowed_here.groovy" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.import.groovy" - }, - "2": { - "name": "keyword.other.import.static.groovy" - }, - "3": { - "name": "storage.modifier.import.groovy" - }, - "4": { - "name": "punctuation.terminator.groovy" - } - }, - "match": "^\\s*(import)(?:\\s+(static)\\s+)\\b(?:\\s*([^ ;$]+)\\s*(;)?)?", - "name": "meta.import.groovy" - }, - { - "include": "#groovy" - } - ], - "repository": { - "annotations": { - "patterns": [ - { - "begin": "(?)", - "end": "\\}", - "patterns": [ - { - "begin": "(?<=\\{)(?=[^\\}]*?->)", - "end": "->", - "endCaptures": { - "0": { - "name": "keyword.operator.groovy" - } - }, - "patterns": [ - { - "begin": "(?!->)", - "end": "(?=->)", - "name": "meta.closure.parameters.groovy", - "patterns": [ - { - "begin": "(?!,|->)", - "end": "(?=,|->)", - "name": "meta.closure.parameter.groovy", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.groovy" - } - }, - "end": "(?=,|->)", - "name": "meta.parameter.default.groovy", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - { - "include": "#parameters" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=[^}])", - "end": "(?=\\})", - "patterns": [ - { - "include": "#groovy-code" - } - ] - } - ] - }, - "comment-block": { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.groovy" - } - }, - "end": "\\*/", - "name": "comment.block.groovy" - }, - "comments": { - "patterns": [ - { - "captures": { - "0": { - "name": "punctuation.definition.comment.groovy" - } - }, - "match": "/\\*\\*/", - "name": "comment.block.empty.groovy" - }, - { - "include": "text.html.javadoc" - }, - { - "include": "#comment-block" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.groovy" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.groovy" - } - ] - }, - "constants": { - "patterns": [ - { - "match": "\\b([A-Z][A-Z0-9_]+)\\b", - "name": "constant.other.groovy" - }, - { - "match": "\\b(true|false|null)\\b", - "name": "constant.language.groovy" - } - ] - }, - "constructors": { - "applyEndPatternLast": 1, - "begin": "(?<=;|^)(?=\\s*(?:(?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)\\s+)*[A-Z]\\w*\\()", - "end": "}", - "patterns": [ - { - "include": "#method-content" - } - ] - }, - "enum-values": { - "patterns": [ - { - "begin": "(?<=;|^)\\s*\\b([A-Z0-9_]+)(?=\\s*(?:,|;|}|\\(|$))", - "beginCaptures": { - "1": { - "name": "constant.enum.name.groovy" - } - }, - "end": ",|;|(?=})|^(?!\\s*\\w+\\s*(?:,|$))", - "patterns": [ - { - "begin": "\\(", - "end": "\\)", - "name": "meta.enum.value.groovy", - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.seperator.parameter.groovy" - }, - { - "include": "#groovy-code" - } - ] - } - ] - } - ] - }, - "groovy": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#class" - }, - { - "include": "#variables" - }, - { - "include": "#methods" - }, - { - "include": "#annotations" - }, - { - "include": "#groovy-code" - } - ] - }, - "groovy-code": { - "patterns": [ - { - "include": "#groovy-code-minus-map-keys" - }, - { - "include": "#map-keys" - } - ] - }, - "groovy-code-minus-map-keys": { - "comment": "In some situations, maps can't be declared without enclosing []'s, \n\t\t\t\ttherefore we create a collection of everything but that", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#annotations" - }, - { - "include": "#support-functions" - }, - { - "include": "#keyword-language" - }, - { - "include": "#values" - }, - { - "include": "#anonymous-classes-and-new" - }, - { - "include": "#keyword-operator" - }, - { - "include": "#types" - }, - { - "include": "#storage-modifiers" - }, - { - "include": "#parens" - }, - { - "include": "#closures" - }, - { - "include": "#braces" - } - ] - }, - "keyword": { - "patterns": [ - { - "include": "#keyword-operator" - }, - { - "include": "#keyword-language" - } - ] - }, - "keyword-language": { - "patterns": [ - { - "match": "\\b(try|catch|finally|throw)\\b", - "name": "keyword.control.exception.groovy" - }, - { - "match": "\\b((?", - "name": "keyword.operator.arrow.groovy" - }, - { - "match": "<<", - "name": "keyword.operator.leftshift.groovy" - }, - { - "match": "(?<=\\S)\\.(?=\\S)", - "name": "keyword.operator.navigation.groovy" - }, - { - "match": "(?<=\\S)\\?\\.(?=\\S)", - "name": "keyword.operator.safe-navigation.groovy" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.groovy" - } - }, - "end": "(?=$|\\)|}|])", - "name": "meta.evaluation.ternary.groovy", - "patterns": [ - { - "match": ":", - "name": "keyword.operator.ternary.expression-seperator.groovy" - }, - { - "include": "#groovy-code-minus-map-keys" - } - ] - }, - { - "match": "==~", - "name": "keyword.operator.match.groovy" - }, - { - "match": "=~", - "name": "keyword.operator.find.groovy" - }, - { - "match": "\\b(instanceof)\\b", - "name": "keyword.operator.instanceof.groovy" - }, - { - "match": "(===|==|!=|<=|>=|<=>|<>|<|>|<<)", - "name": "keyword.operator.comparison.groovy" - }, - { - "match": "=", - "name": "keyword.operator.assignment.groovy" - }, - { - "match": "(\\-\\-|\\+\\+)", - "name": "keyword.operator.increment-decrement.groovy" - }, - { - "match": "(\\-|\\+|\\*|\\/|%)", - "name": "keyword.operator.arithmetic.groovy" - }, - { - "match": "(!|&&|\\|\\|)", - "name": "keyword.operator.logical.groovy" - } - ] - }, - "language-variables": { - "patterns": [ - { - "match": "\\b(this|super)\\b", - "name": "variable.language.groovy" - } - ] - }, - "map-keys": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.other.key.groovy" - }, - "2": { - "name": "punctuation.definition.seperator.key-value.groovy" - } - }, - "match": "(\\w+)\\s*(:)" - } - ] - }, - "method-call": { - "begin": "([\\w$]+)(\\()", - "beginCaptures": { - "1": { - "name": "meta.method.groovy" - }, - "2": { - "name": "punctuation.definition.method-parameters.begin.groovy" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.method-parameters.end.groovy" - } - }, - "name": "meta.method-call.groovy", - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.seperator.parameter.groovy" - }, - { - "include": "#groovy-code" - } - ] - }, - "method-content": { - "patterns": [ - { - "match": "\\s" - }, - { - "include": "#annotations" - }, - { - "begin": "(?=(?:\\w|<)[^\\(]*\\s+(?:[\\w$]|<)+\\s*\\()", - "end": "(?=[\\w$]+\\s*\\()", - "name": "meta.method.return-type.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "include": "#types" - } - ] - }, - { - "begin": "([\\w$]+)\\s*\\(", - "beginCaptures": { - "1": { - "name": "entity.name.function.java" - } - }, - "end": "\\)", - "name": "meta.definition.method.signature.java", - "patterns": [ - { - "begin": "(?=[^)])", - "end": "(?=\\))", - "name": "meta.method.parameters.groovy", - "patterns": [ - { - "begin": "(?=[^,)])", - "end": "(?=,|\\))", - "name": "meta.method.parameter.groovy", - "patterns": [ - { - "match": ",", - "name": "punctuation.definition.separator.groovy" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.groovy" - } - }, - "end": "(?=,|\\))", - "name": "meta.parameter.default.groovy", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - { - "include": "#parameters" - } - ] - } - ] - } - ] - }, - { - "begin": "(?=<)", - "end": "(?=\\s)", - "name": "meta.method.paramerised-type.groovy", - "patterns": [ - { - "begin": "<", - "end": ">", - "name": "storage.type.parameters.groovy", - "patterns": [ - { - "include": "#types" - }, - { - "match": ",", - "name": "punctuation.definition.seperator.groovy" - } - ] - } - ] - }, - { - "begin": "throws", - "beginCaptures": { - "0": { - "name": "storage.modifier.groovy" - } - }, - "end": "(?={|;)|^(?=\\s*(?:[^{\\s]|$))", - "name": "meta.throwables.groovy", - "patterns": [ - { - "include": "#object-types" - } - ] - }, - { - "begin": "{", - "end": "(?=})", - "name": "meta.method.body.java", - "patterns": [ - { - "include": "#groovy-code" - } - ] - } - ] - }, - "methods": { - "applyEndPatternLast": 1, - "begin": "(?x:(?<=;|^|{)(?=\\s*\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:\n (?:\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:@?(?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n [\\[\\]]*\n (?:<.*>)?\n ) \n \n )\n \\s+\n ([^=]+\\s+)?\\w+\\s*\\(\n\t\t\t))", - "end": "}|(?=[^{])", - "name": "meta.definition.method.groovy", - "patterns": [ - { - "include": "#method-content" - } - ] - }, - "nest_curly": { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.groovy" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "((0(x|X)[0-9a-fA-F]*)|(\\+|-)?\\b(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)([LlFfUuDdg]|UL|ul)?\\b", - "name": "constant.numeric.groovy" - } - ] - }, - "object-types": { - "patterns": [ - { - "begin": "\\b((?:[a-z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI]))<", - "end": ">|[^\\w\\s,\\?<\\[\\]]", - "name": "storage.type.generic.groovy", - "patterns": [ - { - "include": "#object-types" - }, - { - "begin": "<", - "comment": "This is just to support <>'s with no actual type prefix", - "end": ">|[^\\w\\s,\\[\\]<]", - "name": "storage.type.generic.groovy" - } - ] - }, - { - "begin": "\\b((?:[a-z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)(?=\\[)", - "end": "(?=[^\\]\\s])", - "name": "storage.type.object.array.groovy", - "patterns": [ - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#groovy" - } - ] - } - ] - }, - { - "match": "\\b(?:[a-zA-Z]\\w*\\.)*(?:[A-Z]+\\w*[a-z]+\\w*|UR[LI])\\b", - "name": "storage.type.groovy" - } - ] - }, - "object-types-inherited": { - "patterns": [ - { - "begin": "\\b((?:[a-zA-Z]\\w*\\.)*[A-Z]+\\w*[a-z]+\\w*)<", - "end": ">|[^\\w\\s,\\?<\\[\\]]", - "name": "entity.other.inherited-class.groovy", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "begin": "<", - "comment": "This is just to support <>'s with no actual type prefix", - "end": ">|[^\\w\\s,\\[\\]<]", - "name": "storage.type.generic.groovy" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.operator.dereference.groovy" - } - }, - "match": "\\b(?:[a-zA-Z]\\w*(\\.))*[A-Z]+\\w*[a-z]+\\w*\\b", - "name": "entity.other.inherited-class.groovy" - } - ] - }, - "parameters": { - "patterns": [ - { - "include": "#annotations" - }, - { - "include": "#storage-modifiers" - }, - { - "include": "#types" - }, - { - "match": "\\w+", - "name": "variable.parameter.method.groovy" - } - ] - }, - "parens": { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - "primitive-arrays": { - "patterns": [ - { - "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)(\\[\\])*\\b", - "name": "storage.type.primitive.array.groovy" - } - ] - }, - "primitive-types": { - "patterns": [ - { - "match": "\\b(?:void|boolean|byte|char|short|int|float|long|double)\\b", - "name": "storage.type.primitive.groovy" - } - ] - }, - "regexp": { - "patterns": [ - { - "begin": "/(?=[^/]+/([^>]|$))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.begin.groovy" - } - }, - "end": "/", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.end.groovy" - } - }, - "name": "string.regexp.groovy", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - } - ] - }, - { - "begin": "~\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.begin.groovy" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.regexp.end.groovy" - } - }, - "name": "string.regexp.compiled.groovy", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - } - ] - } - ] - }, - "storage-modifiers": { - "patterns": [ - { - "match": "\\b(private|protected|public)\\b", - "name": "storage.modifier.access-control.groovy" - }, - { - "match": "\\b(static)\\b", - "name": "storage.modifier.static.groovy" - }, - { - "match": "\\b(final)\\b", - "name": "storage.modifier.final.groovy" - }, - { - "match": "\\b(native|synchronized|abstract|threadsafe|transient)\\b", - "name": "storage.modifier.other.groovy" - } - ] - }, - "string-quoted-double": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.double.groovy", - "patterns": [ - { - "include": "#string-quoted-double-contents" - } - ] - }, - "string-quoted-double-contents": { - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - }, - { - "applyEndPatternLast": 1, - "begin": "\\$\\w", - "end": "(?=\\W)", - "name": "variable.other.interpolated.groovy", - "patterns": [ - { - "match": "\\w", - "name": "variable.other.interpolated.groovy" - }, - { - "match": "\\.", - "name": "keyword.other.dereference.groovy" - } - ] - }, - { - "begin": "\\$\\{", - "captures": { - "0": { - "name": "punctuation.section.embedded.groovy" - } - }, - "end": "\\}", - "name": "source.groovy.embedded.source", - "patterns": [ - { - "include": "#nest_curly" - } - ] - } - ] - }, - "string-quoted-double-multiline": { - "begin": "\"\"\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "\"\"\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.double.multiline.groovy", - "patterns": [ - { - "include": "#string-quoted-double-contents" - } - ] - }, - "string-quoted-single": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.single.groovy", - "patterns": [ - { - "include": "#string-quoted-single-contents" - } - ] - }, - "string-quoted-single-contents": { - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.groovy" - } - ] - }, - "string-quoted-single-multiline": { - "begin": "'''", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.groovy" - } - }, - "end": "'''", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.groovy" - } - }, - "name": "string.quoted.single.multiline.groovy", - "patterns": [ - { - "include": "#string-quoted-single-contents" - } - ] - }, - "strings": { - "patterns": [ - { - "include": "#string-quoted-double-multiline" - }, - { - "include": "#string-quoted-single-multiline" - }, - { - "include": "#string-quoted-double" - }, - { - "include": "#string-quoted-single" - }, - { - "include": "#regexp" - } - ] - }, - "structures": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.structure.begin.groovy" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.structure.end.groovy" - } - }, - "name": "meta.structure.groovy", - "patterns": [ - { - "include": "#groovy-code" - }, - { - "match": ",", - "name": "punctuation.definition.separator.groovy" - } - ] - }, - "support-functions": { - "patterns": [ - { - "match": "(?x)\\b(?:sprintf|print(?:f|ln)?)\\b", - "name": "support.function.print.groovy" - }, - { - "match": "(?x)\\b(?:shouldFail|fail(?:NotEquals)?|ass(?:ume|ert(?:S(?:cript|ame)|N(?:ot(?:Same|\n\t\t\t\t\tNull)|ull)|Contains|T(?:hat|oString|rue)|Inspect|Equals|False|Length|\n\t\t\t\t\tArrayEquals)))\\b", - "name": "support.function.testing.groovy" - } - ] - }, - "types": { - "patterns": [ - { - "match": "\\b(def)\\b", - "name": "storage.type.def.groovy" - }, - { - "include": "#primitive-types" - }, - { - "include": "#primitive-arrays" - }, - { - "include": "#object-types" - } - ] - }, - "values": { - "patterns": [ - { - "include": "#language-variables" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#constants" - }, - { - "include": "#types" - }, - { - "include": "#structures" - }, - { - "include": "#method-call" - } - ] - }, - "variables": { - "applyEndPatternLast": 1, - "patterns": [ - { - "begin": "(?x:(?=\n (?:\n (?:private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final) # visibility/modifier\n |\n (?:def)\n |\n (?:void|boolean|byte|char|short|int|float|long|double)\n |\n (?:(?:[a-z]\\w*\\.)*[A-Z]+\\w*) # object type\n )\n \\s+\n [\\w\\d_<>\\[\\],\\s]+\n (?:=|$)\n \n \t\t\t))", - "end": ";|$", - "name": "meta.definition.variable.groovy", - "patterns": [ - { - "match": "\\s" - }, - { - "captures": { - "1": { - "name": "constant.variable.groovy" - } - }, - "match": "([A-Z_0-9]+)\\s+(?=\\=)" - }, - { - "captures": { - "1": { - "name": "meta.definition.variable.name.groovy" - } - }, - "match": "(\\w[^\\s,]*)\\s+(?=\\=)" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.groovy" - } - }, - "end": "$", - "patterns": [ - { - "include": "#groovy-code" - } - ] - }, - { - "captures": { - "1": { - "name": "meta.definition.variable.name.groovy" - } - }, - "match": "(\\w[^\\s=]*)(?=\\s*($|;))" - }, - { - "include": "#groovy-code" - } - ] - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/groovy/test/colorize-fixtures/test.groovy b/extensions/groovy/test/colorize-fixtures/test.groovy deleted file mode 100644 index f367f30058a..00000000000 --- a/extensions/groovy/test/colorize-fixtures/test.groovy +++ /dev/null @@ -1,219 +0,0 @@ - -// Hello World -println "Hello world!" - -/* - Variables: - - You can assign values to variables for later use -*/ - -def x = 1 -println x - -x = new java.util.Date() -println x - -x = -3.1499392 -println x - -x = false -println x - -x = "Groovy!" -println x - -/* - Collections and maps -*/ - -//Creating an empty list -def technologies = [] - -/*** Adding a elements to the list ***/ - -// As with Java -technologies.add("Grails") - -// Left shift adds, and returns the list -technologies << "Groovy" - -// Add multiple elements -technologies.addAll(["Gradle","Griffon"]) - -/*** Removing elements from the list ***/ - -// As with Java -technologies.remove("Griffon") - -// Subtraction works also -technologies = technologies - 'Grails' - -/*** Iterating Lists ***/ - -// Iterate over elements of a list -technologies.each { println "Technology: $it"} -technologies.eachWithIndex { it, i -> println "$i: $it"} - -/*** Checking List contents ***/ - -//Evaluate if a list contains element(s) (boolean) -contained = technologies.contains( 'Groovy' ) - -// Or -contained = 'Groovy' in technologies - -// To sort without mutating original, you can do: -sortedTechnologies = technologies.sort( false ) - - -//Replace all elements in the list -Collections.replaceAll(technologies, 'Gradle', 'gradle') - -//Shuffle a list -Collections.shuffle(technologies, new Random()) - -//Clear a list -technologies.clear() - -//Creating an empty map -def devMap = [:] - -//Add values -devMap = ['name':'Roberto', 'framework':'Grails', 'language':'Groovy'] -devMap.put('lastName','Perez') - -//Iterate over elements of a map -devMap.each { println "$it.key: $it.value" } -devMap.eachWithIndex { it, i -> println "$i: $it"} - -//Evaluate if a map contains a key -assert devMap.containsKey('name') - -//Get the keys of a map -println devMap.keySet() - -class Foo { - // read only property - final String name = "Roberto" - - // read only property with public getter and protected setter - String language - protected void setLanguage(String language) { this.language = language } - - // dynamically typed property - def lastName -} - -/* - Logical Branching and Looping -*/ - -//Groovy supports the usual if - else syntax -def x = 3 - -if(x==1) { - println "One" -} else if(x==2) { - println "Two" -} else { - println "X greater than Two" -} - -//Groovy also supports the ternary operator: -def y = 10 -def x = (y > 1) ? "worked" : "failed" -assert x == "worked" - -//Groovy supports 'The Elvis Operator' too! -//Instead of using the ternary operator: - -displayName = user.name ? user.name : 'Anonymous' - -//We can write it: -displayName = user.name ?: 'Anonymous' - -//For loop -//Iterate over a range -def x = 0 -for (i in 0 .. 30) { - x += i -} - -//Iterate over a list -x = 0 -for( i in [5,3,2,1] ) { - x += i -} - -//Iterate over an array -array = (0..20).toArray() -x = 0 -for (i in array) { - x += i -} - -//Iterate over a map -def map = ['name':'Roberto', 'framework':'Grails', 'language':'Groovy'] -x = 0 -for ( e in map ) { - x += e.value -} - -def technologies = ['Groovy','Grails','Gradle'] -technologies*.toUpperCase() // = to technologies.collect { it?.toUpperCase() } - -def user = User.get(1) -def username = user?.username - -def clos = { println "Hello World!" } - -def sum = { a, b -> println a+b } -sum(2,4) - -def x = 5 -def multiplyBy = { num -> num * x } -println multiplyBy(10) - -def clos = { print it } -clos( "hi" ) - -def cl = {a, b -> - sleep(3000) // simulate some time consuming processing - a + b -} - -mem = cl.memoize() - -def callClosure(a, b) { - def start = System.currentTimeMillis() - mem(a, b) - println "Inputs(a = $a, b = $b) - took ${System.currentTimeMillis() - start} msecs." -} - -callClosure(1, 2) - -//Another example: -import groovy.transform.TypeChecked - -@TypeChecked -Integer test() { - Integer num = "1" - - Integer[] numbers = [1,2,3,4] - - Date date = numbers[1] - - return "Test" - -} - -//CompileStatic example: -import groovy.transform.CompileStatic - -@CompileStatic -int sum(int x, int y) { - x + y -} - -assert sum(2,5) == 7 diff --git a/extensions/groovy/test/colorize-results/test_groovy.json b/extensions/groovy/test/colorize-results/test_groovy.json deleted file mode 100644 index e6f3166fa05..00000000000 --- a/extensions/groovy/test/colorize-results/test_groovy.json +++ /dev/null @@ -1,10430 +0,0 @@ -[ - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Hello World", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Hello world!", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/*", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Variables:", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " You can assign values to variables for later use", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.groovy meta.definition.variable.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " x", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.groovy keyword.control.new.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "java.util.Date", - "t": "source.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": "()", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " x", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-3.1499392", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " x", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "false", - "t": "source.groovy constant.language.groovy", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " x", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Groovy!", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " x", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Collections and maps", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Creating an empty list", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "technologies", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "** Adding a elements to the list **", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " As with Java", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "add", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Grails", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Left shift adds, and returns the list", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "technologies ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<<", - "t": "source.groovy keyword.operator.leftshift.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Groovy", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Add multiple elements", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "addAll", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Gradle", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Griffon", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.groovy meta.method-call.groovy meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "** Removing elements from the list **", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " As with Java", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "remove", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Griffon", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Subtraction works also", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "technologies ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " technologies ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Grails", - "t": "source.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/*", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "** Iterating Lists **", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Iterate over elements of a list", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "each { ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Technology: ", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$i", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "t", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "eachWithIndex {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "it", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.groovy meta.closure.parameters.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.groovy keyword.operator.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$i", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ": ", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$i", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "t", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "** Checking List contents **", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Evaluate if a list contains element(s) (boolean)", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "contained ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "contains", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Groovy", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Or", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "contained ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Groovy", - "t": "source.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.groovy keyword.operator.in.groovy", - "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" - } - }, - { - "c": " technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " To sort without mutating original, you can do:", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "sortedTechnologies ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "sort", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "false", - "t": "source.groovy meta.method-call.groovy constant.language.groovy", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Replace all elements in the list", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Collections", - "t": "source.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "replaceAll", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "technologies", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.groovy meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Gradle", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "gradle", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Shuffle a list", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Collections", - "t": "source.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "shuffle", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "technologies", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.groovy meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.groovy meta.method-call.groovy keyword.control.new.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Random", - "t": "source.groovy meta.method-call.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": "()", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Clear a list", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "clear", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Creating an empty map", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "devMap", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Add values", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "devMap ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "name", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Roberto", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "framework", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Grails", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "language", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Groovy", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.groovy meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "devMap", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "put", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "lastName", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Perez", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Iterate over elements of a map", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "devMap", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "each { ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$i", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "t", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy keyword.other.dereference.groovy", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "key", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ": ", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$i", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "t", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy keyword.other.dereference.groovy", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "value", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " }", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "devMap", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "eachWithIndex {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "it", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.groovy meta.closure.parameters.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.groovy keyword.operator.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$i", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ": ", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$i", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "t", - "t": "source.groovy string.quoted.double.groovy variable.other.interpolated.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Evaluate if a map contains a key", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "assert", - "t": "source.groovy meta.declaration.assertion.groovy keyword.control.assert.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " devMap", - "t": "source.groovy meta.declaration.assertion.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy meta.declaration.assertion.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "containsKey", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "name", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Get the keys of a map", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " devMap", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "keySet", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.groovy meta.definition.class.groovy meta.class.identifier.groovy storage.modifier.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.identifier.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.groovy meta.definition.class.groovy meta.class.identifier.groovy entity.name.type.class.groovy", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " read only property", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "final", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy storage.modifier.final.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "String", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Roberto", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " read only property with public getter and protected setter", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "String", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "language", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "protected", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.return-type.java storage.modifier.access-control.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.return-type.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.return-type.java storage.type.primitive.groovy", - "r": { - "dark_plus": "storage.type.primitive.groovy: #4EC9B0", - "light_plus": "storage.type.primitive.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.return-type.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "setLanguage", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.definition.method.signature.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.definition.method.signature.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "String", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "language", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.definition.method.signature.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{ ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.body.java variable.language.groovy", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "language ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " language ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " dynamically typed property", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "lastName", - "t": "source.groovy meta.definition.class.groovy meta.class.body.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.groovy meta.definition.class.groovy punctuation.section.class.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Logical Branching and Looping", - "t": "source.groovy comment.block.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.groovy comment.block.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Groovy supports the usual if - else syntax", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.groovy meta.definition.variable.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "if", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(x", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.groovy keyword.operator.comparison.groovy", - "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" - } - }, - { - "c": "1", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ") {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "One", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "} ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(x", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.groovy keyword.operator.comparison.groovy", - "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" - } - }, - { - "c": "2", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ") {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Two", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "} ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "X greater than Two", - "t": "source.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Groovy also supports the ternary operator:", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "y", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10", - "t": "source.groovy meta.definition.variable.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " (y ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.comparison.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.groovy meta.definition.variable.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ") ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy keyword.operator.ternary.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "worked", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy keyword.operator.ternary.expression-seperator.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "failed", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.variable.groovy meta.evaluation.ternary.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "assert", - "t": "source.groovy meta.declaration.assertion.groovy keyword.control.assert.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " x ", - "t": "source.groovy meta.declaration.assertion.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.groovy meta.declaration.assertion.groovy keyword.operator.comparison.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.declaration.assertion.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.declaration.assertion.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "worked", - "t": "source.groovy meta.declaration.assertion.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.declaration.assertion.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Groovy supports 'The Elvis Operator' too!", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Instead of using the ternary operator:", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "displayName ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " user", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "name ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?", - "t": "source.groovy meta.evaluation.ternary.groovy keyword.operator.ternary.groovy", - "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" - } - }, - { - "c": " user", - "t": "source.groovy meta.evaluation.ternary.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy meta.evaluation.ternary.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "name ", - "t": "source.groovy meta.evaluation.ternary.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.groovy meta.evaluation.ternary.groovy keyword.operator.ternary.expression-seperator.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.evaluation.ternary.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.evaluation.ternary.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Anonymous", - "t": "source.groovy meta.evaluation.ternary.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.evaluation.ternary.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "We can write it:", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "displayName ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " user", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "name ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?:", - "t": "source.groovy keyword.operator.elvis.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Anonymous", - "t": "source.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "For loop", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Iterate over a range", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.groovy meta.definition.variable.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "for", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (i ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.groovy keyword.operator.in.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "..", - "t": "source.groovy keyword.operator.range.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "30", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ") {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " i", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Iterate over a list", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "for", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "( i ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.groovy keyword.operator.in.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.groovy meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.groovy meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.groovy meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.groovy meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "]", - "t": "source.groovy meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ) {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " i", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Iterate over an array", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "array ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " (", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "..", - "t": "source.groovy keyword.operator.range.groovy", - "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" - } - }, - { - "c": "20", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ")", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "toArray", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "for", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (i ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.groovy keyword.operator.in.groovy", - "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" - } - }, - { - "c": " array) {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " i", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Iterate over a map", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "map", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "name", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Roberto", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "framework", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Grails", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "language", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Groovy", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "for", - "t": "source.groovy keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ( e ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.groovy keyword.operator.in.groovy", - "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" - } - }, - { - "c": " map ) {", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " x ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " e", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "value", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "technologies", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Groovy", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Grails", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Gradle", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy string.quoted.single.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.groovy meta.definition.variable.groovy meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "technologies", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "toUpperCase", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " = to technologies.collect { it?.toUpperCase() }", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "user", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "User", - "t": "source.groovy meta.definition.variable.groovy storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "get", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ")", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "username", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " user", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?.", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.safe-navigation.groovy", - "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" - } - }, - { - "c": "username", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "clos", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " { ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy meta.definition.variable.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.variable.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Hello World!", - "t": "source.groovy meta.definition.variable.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.variable.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " }", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sum", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " {", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy meta.definition.variable.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " a", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": "b }", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sum", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.groovy meta.definition.variable.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "multiplyBy", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " {", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "num", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.groovy", - "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" - } - }, - { - "c": " num ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": " x }", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "multiplyBy", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10", - "t": "source.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "clos", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " { ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "print", - "t": "source.groovy meta.definition.variable.groovy support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " it }", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "clos", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "hi", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.method-call.groovy string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.variable.groovy storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cl", - "t": "source.groovy meta.definition.variable.groovy meta.definition.variable.name.groovy", - "r": { - "dark_plus": "meta.definition.variable.name: #9CDCFE", - "light_plus": "meta.definition.variable.name: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.definition.variable.name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " {", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy meta.closure.parameters.groovy meta.closure.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sleep", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3000", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ")", - "t": "source.groovy meta.definition.variable.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy meta.definition.variable.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " simulate some time consuming processing", - "t": "source.groovy meta.definition.variable.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " a ", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.groovy meta.definition.variable.groovy keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": " b", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy meta.definition.variable.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "mem ", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " cl", - "t": "source.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.groovy keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "memoize", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.method.groovy meta.method.return-type.java storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.return-type.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "callClosure", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java storage.type.def.groovy", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " start ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "System", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.navigation.groovy", - "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" - } - }, - { - "c": "currentTimeMillis", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "mem", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " b", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java support.function.print.groovy", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Inputs(a = ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$a", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ", b = ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$b", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy variable.other.interpolated.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ") - took ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy source.groovy.embedded.source punctuation.section.embedded.groovy", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "System.currentTimeMillis() - start", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy source.groovy.embedded.source", - "r": { - "dark_plus": "source.groovy.embedded: #D4D4D4", - "light_plus": "source.groovy.embedded: #000000", - "dark_vs": "source.groovy.embedded: #D4D4D4", - "light_vs": "source.groovy.embedded: #000000", - "hc_black": "source.groovy.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy source.groovy.embedded.source punctuation.section.embedded.groovy", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": " msecs.", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "callClosure", - "t": "source.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.method-call.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ")", - "t": "source.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Another example:", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "import", - "t": "source.groovy meta.import.groovy keyword.other.import.groovy", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.import.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "groovy", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": ".", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy punctuation.separator.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "transform", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": ".", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy punctuation.separator.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "TypeChecked", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "@TypeChecked", - "t": "source.groovy storage.type.annotation.groovy", - "r": { - "dark_plus": "storage.type.annotation.groovy: #4EC9B0", - "light_plus": "storage.type.annotation.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.annotation.groovy: #4EC9B0" - } - }, - { - "c": "Integer", - "t": "source.groovy meta.definition.method.groovy meta.method.return-type.java storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.return-type.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "test", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Integer", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": " num ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "1", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Integer", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java storage.type.object.array.groovy", - "r": { - "dark_plus": "storage.type.object.array.groovy: #4EC9B0", - "light_plus": "storage.type.object.array.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.object.array.groovy: #4EC9B0" - } - }, - { - "c": "[", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " numbers ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.separator.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "]", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Date", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java storage.type.groovy", - "r": { - "dark_plus": "storage.type.groovy: #4EC9B0", - "light_plus": "storage.type.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.groovy: #4EC9B0" - } - }, - { - "c": " date ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.assignment.groovy", - "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" - } - }, - { - "c": " numbers", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.structure.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": "]", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java meta.structure.groovy punctuation.definition.structure.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java keyword.control.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy punctuation.definition.string.begin.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Test", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java string.quoted.double.groovy punctuation.definition.string.end.groovy", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.groovy comment.line.double-slash.groovy punctuation.definition.comment.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "CompileStatic example:", - "t": "source.groovy comment.line.double-slash.groovy", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "import", - "t": "source.groovy meta.import.groovy keyword.other.import.groovy", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.groovy meta.import.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "groovy", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": ".", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy punctuation.separator.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "transform", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": ".", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy punctuation.separator.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "CompileStatic", - "t": "source.groovy meta.import.groovy storage.modifier.import.groovy", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "@CompileStatic", - "t": "source.groovy storage.type.annotation.groovy", - "r": { - "dark_plus": "storage.type.annotation.groovy: #4EC9B0", - "light_plus": "storage.type.annotation.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.annotation.groovy: #4EC9B0" - } - }, - { - "c": "int", - "t": "source.groovy meta.definition.method.groovy meta.method.return-type.java storage.type.primitive.groovy", - "r": { - "dark_plus": "storage.type.primitive.groovy: #4EC9B0", - "light_plus": "storage.type.primitive.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.method.return-type.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sum", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy storage.type.primitive.groovy", - "r": { - "dark_plus": "storage.type.primitive.groovy: #4EC9B0", - "light_plus": "storage.type.primitive.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy storage.type.primitive.groovy", - "r": { - "dark_plus": "storage.type.primitive.groovy: #4EC9B0", - "light_plus": "storage.type.primitive.groovy: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.groovy: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "y", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java meta.method.parameters.groovy meta.method.parameter.groovy variable.parameter.method.groovy", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.groovy meta.definition.method.groovy meta.definition.method.signature.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " x ", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java keyword.operator.arithmetic.groovy", - "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" - } - }, - { - "c": " y", - "t": "source.groovy meta.definition.method.groovy meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.groovy meta.definition.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "assert", - "t": "source.groovy meta.declaration.assertion.groovy keyword.control.assert.groovy", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.groovy meta.declaration.assertion.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sum", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy meta.method.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy punctuation.definition.method-parameters.begin.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ",", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy punctuation.definition.seperator.parameter.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy constant.numeric.groovy", - "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" - } - }, - { - "c": ")", - "t": "source.groovy meta.declaration.assertion.groovy meta.method-call.groovy punctuation.definition.method-parameters.end.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.groovy meta.declaration.assertion.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.groovy meta.declaration.assertion.groovy keyword.operator.comparison.groovy", - "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" - } - }, - { - "c": " ", - "t": "source.groovy meta.declaration.assertion.groovy", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "7", - "t": "source.groovy meta.declaration.assertion.groovy constant.numeric.groovy", - "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" - } - } -] diff --git a/extensions/handlebars/.vscodeignore b/extensions/handlebars/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/handlebars/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/handlebars/cgmanifest.json b/extensions/handlebars/cgmanifest.json deleted file mode 100644 index 39f8efc676d..00000000000 --- a/extensions/handlebars/cgmanifest.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "daaain/Handlebars", - "repositoryUrl": "https://github.com/daaain/Handlebars", - "commitHash": "85a153a6f759df4e8da7533e1b3651f007867c51" - } - }, - "licenseDetail": [ - "-- Credits", - "", - "Adapted from the great sublime-text-handlebars package by Nicholas Westlake.", - "", - "Thanks a lot to all the generous contributors (in alphabetical order): @bittersweetryan, @bradcliffe, @calumbrodie, @duncanbeevers, @hlvnst, @jonschlinkert, @Krutius, @samselikoff, @utkarshkukreti, @zeppelin", - "", - "-- License", - "", - "(The MIT License)", - "", - "Copyright (c) daaain/Handlebars project authors", - "", - "Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the 'Software'), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:", - "", - "The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.", - "", - "THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." - ], - "license": "MIT", - "version": "1.8.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/handlebars/language-configuration.json b/extensions/handlebars/language-configuration.json deleted file mode 100644 index cb2de742fb0..00000000000 --- a/extensions/handlebars/language-configuration.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "comments": { - "blockComment": [ "{{!--", "--}}" ] - }, - "brackets": [ - [""], - ["<", ">"], - ["{{", "}}"], - ["{{{", "}}}"], - ["{", "}"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}"}, - { "open": "[", "close": "]"}, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'" }, - { "open": "\"", "close": "\"" } - ], - "surroundingPairs": [ - { "open": "'", "close": "'" }, - { "open": "\"", "close": "\"" }, - { "open": "<", "close": ">" }, - { "open": "{", "close": "}" } - ] -} diff --git a/extensions/handlebars/package.json b/extensions/handlebars/package.json deleted file mode 100644 index 37b63ee54ce..00000000000 --- a/extensions/handlebars/package.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "name": "handlebars", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js daaain/Handlebars grammars/Handlebars.json ./syntaxes/Handlebars.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "handlebars", - "extensions": [ ".handlebars", ".hbs", ".hjs" ], - "aliases": [ "Handlebars", "handlebars" ], - "mimetypes": ["text/x-handlebars-template"], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "handlebars", - "scopeName": "text.html.handlebars", - "path": "./syntaxes/Handlebars.tmLanguage.json" - }] - } -} diff --git a/extensions/handlebars/package.nls.json b/extensions/handlebars/package.nls.json deleted file mode 100644 index 1c2e3910e43..00000000000 --- a/extensions/handlebars/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Handlebars Language Basics", - "description": "Provides syntax highlighting and bracket matching in Handlebars files." -} \ No newline at end of file diff --git a/extensions/handlebars/syntaxes/Handlebars.tmLanguage.json b/extensions/handlebars/syntaxes/Handlebars.tmLanguage.json deleted file mode 100644 index be8b06fa085..00000000000 --- a/extensions/handlebars/syntaxes/Handlebars.tmLanguage.json +++ /dev/null @@ -1,852 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/daaain/Handlebars/blob/master/grammars/Handlebars.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/daaain/Handlebars/commit/85a153a6f759df4e8da7533e1b3651f007867c51", - "name": "Handlebars", - "scopeName": "text.html.handlebars", - "patterns": [ - { - "include": "#yfm" - }, - { - "include": "#extends" - }, - { - "include": "#block_comments" - }, - { - "include": "#comments" - }, - { - "include": "#block_helper" - }, - { - "include": "#end_block" - }, - { - "include": "#else_token" - }, - { - "include": "#partial_and_var" - }, - { - "include": "#inline_script" - }, - { - "include": "#html_tags" - }, - { - "include": "text.html.basic" - } - ], - "repository": { - "html_tags": { - "patterns": [ - { - "begin": "(<)([a-zA-Z0-9:-]+)(?=[^>]*>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(>(<)/)(\\2)(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "meta.scope.between-tag-pair.html" - }, - "3": { - "name": "entity.name.tag.html" - }, - "4": { - "name": "punctuation.definition.tag.html" - } - }, - "name": "meta.tag.any.html", - "patterns": [ - { - "include": "#tag-stuff" - } - ] - }, - { - "begin": "(<\\?)(xml)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.xml.html" - } - }, - "end": "(\\?>)", - "name": "meta.tag.preprocessor.xml.html", - "patterns": [ - { - "include": "#tag_generic_attribute" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "" ] - }, - "brackets": [ - [""], - ["<", ">"], - ["{", "}"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}"}, - { "open": "[", "close": "]"}, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'" }, - { "open": "\"", "close": "\"" }, - { "open": "", "notIn": [ "comment", "string" ]} - ], - "surroundingPairs": [ - { "open": "'", "close": "'" }, - { "open": "\"", "close": "\"" }, - { "open": "{", "close": "}"}, - { "open": "[", "close": "]"}, - { "open": "(", "close": ")" }, - { "open": "<", "close": ">" } - ], - "folding": { - "markers": { - "start": "^\\s*", - "end": "^\\s*" - } - } -} \ No newline at end of file diff --git a/extensions/html/package.json b/extensions/html/package.json deleted file mode 100644 index 6b1eac2d702..00000000000 --- a/extensions/html/package.json +++ /dev/null @@ -1,81 +0,0 @@ -{ - "name": "html", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "scripts": { - "update-grammar": "node ./build/update-grammar.js" - }, - "contributes": { - "languages": [ - { - "id": "html", - "extensions": [ - ".html", - ".htm", - ".shtml", - ".xhtml", - ".xht", - ".mdoc", - ".jsp", - ".asp", - ".aspx", - ".jshtm", - ".volt", - ".ejs", - ".rhtml" - ], - "aliases": [ - "HTML", - "htm", - "html", - "xhtml" - ], - "mimetypes": [ - "text/html", - "text/x-jshtm", - "text/template", - "text/ng-template", - "application/xhtml+xml" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "scopeName": "text.html.basic", - "path": "./syntaxes/html.tmLanguage.json", - "embeddedLanguages": { - "text.html": "html", - "source.css": "css", - "source.js": "javascript", - "source.python": "python", - "source.smarty": "smarty" - }, - "tokenTypes": { - "meta.tag string.quoted": "other" - } - }, - { - "language": "html", - "scopeName": "text.html.derivative", - "path": "./syntaxes/html-derivative.tmLanguage.json", - "embeddedLanguages": { - "text.html": "html", - "source.css": "css", - "source.js": "javascript", - "source.python": "python", - "source.smarty": "smarty" - }, - "tokenTypes": { - "meta.tag string.quoted": "other" - } - } - ] - } -} diff --git a/extensions/html/package.nls.json b/extensions/html/package.nls.json deleted file mode 100644 index 3dde415bb96..00000000000 --- a/extensions/html/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "HTML Language Basics", - "description": "Provides syntax highlighting, bracket matching & snippets in HTML files." -} \ No newline at end of file diff --git a/extensions/html/syntaxes/html-derivative.tmLanguage.json b/extensions/html/syntaxes/html-derivative.tmLanguage.json deleted file mode 100644 index dc73025b9dd..00000000000 --- a/extensions/html/syntaxes/html-derivative.tmLanguage.json +++ /dev/null @@ -1,49 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/html.tmbundle/blob/master/Syntaxes/HTML%20%28Derivative%29.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/html.tmbundle/commit/390c8870273a2ae80244dae6db6ba064a802f407", - "name": "HTML (Derivative)", - "scopeName": "text.html.derivative", - "injections": { - "R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)": { - "comment": "Uses R: to ensure this matches after any other injections.", - "patterns": [ - { - "match": "<", - "name": "invalid.illegal.bad-angle-bracket.html" - } - ] - } - }, - "patterns": [ - { - "include": "text.html.basic#core-minus-invalid" - }, - { - "begin": "(]*)(?)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.unrecognized.html.derivative", - "patterns": [ - { - "include": "text.html.basic#attribute" - } - ] - } - ] -} \ No newline at end of file diff --git a/extensions/html/syntaxes/html.tmLanguage.json b/extensions/html/syntaxes/html.tmLanguage.json deleted file mode 100644 index 1e1c85c899f..00000000000 --- a/extensions/html/syntaxes/html.tmLanguage.json +++ /dev/null @@ -1,2643 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/html.tmbundle/blob/master/Syntaxes/HTML.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/html.tmbundle/commit/0c3d5ee54de3a993f747f54186b73a4d2d3c44a2", - "name": "HTML", - "scopeName": "text.html.basic", - "injections": { - "R:text.html - (comment.block, text.html meta.embedded, meta.tag.*.*.html, meta.tag.*.*.*.html, meta.tag.*.*.*.*.html)": { - "comment": "Uses R: to ensure this matches after any other injections.", - "patterns": [ - { - "match": "<", - "name": "invalid.illegal.bad-angle-bracket.html" - } - ] - } - }, - "patterns": [ - { - "include": "#xml-processing" - }, - { - "include": "#comment" - }, - { - "include": "#doctype" - }, - { - "include": "#cdata" - }, - { - "include": "#tags-valid" - }, - { - "include": "#tags-invalid" - }, - { - "include": "#entities" - } - ], - "repository": { - "attribute": { - "patterns": [ - { - "begin": "(s(hape|cope|t(ep|art)|ize(s)?|p(ellcheck|an)|elected|lot|andbox|rc(set|doc|lang)?)|h(ttp-equiv|i(dden|gh)|e(ight|aders)|ref(lang)?)|n(o(nce|validate|module)|ame)|c(h(ecked|arset)|ite|o(nt(ent(editable)?|rols)|ords|l(s(pan)?|or))|lass|rossorigin)|t(ype(mustmatch)?|itle|a(rget|bindex)|ranslate)|i(s(map)?|n(tegrity|putmode)|tem(scope|type|id|prop|ref)|d)|op(timum|en)|d(i(sabled|r(name)?)|ownload|e(coding|f(er|ault))|at(etime|a)|raggable)|usemap|p(ing|oster|la(ysinline|ceholder)|attern|reload)|enctype|value|kind|for(m(novalidate|target|enctype|action|method)?)?|w(idth|rap)|l(ist|o(op|w)|a(ng|bel))|a(s(ync)?|c(ce(sskey|pt(-charset)?)|tion)|uto(c(omplete|apitalize)|play|focus)|l(t|low(usermedia|paymentrequest|fullscreen))|bbr)|r(ows(pan)?|e(versed|quired|ferrerpolicy|l|adonly))|m(in(length)?|u(ted|ltiple)|e(thod|dia)|a(nifest|x(length)?)))(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 attributes, not event handlers", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "style(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 style attribute", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.style.html", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "begin": "(?=[^\\s=<>`/]|/(?!>))", - "end": "(?!\\G)", - "name": "meta.embedded.line.css", - "patterns": [ - { - "captures": { - "0": { - "name": "source.css" - } - }, - "match": "([^\\s\"'=<>`/]|/(?!>))+", - "name": "string.unquoted.html" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.css", - "end": "(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.css-ignored-vscode" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "include": "#entities" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.css", - "end": "(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.css-ignored-vscode" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "include": "#entities" - } - ] - } - ] - }, - { - "match": "=", - "name": "invalid.illegal.unexpected-equals-sign.html" - } - ] - } - ] - }, - { - "begin": "on(s(croll|t(orage|alled)|u(spend|bmit)|e(curitypolicyviolation|ek(ing|ed)|lect))|hashchange|c(hange|o(ntextmenu|py)|u(t|echange)|l(ick|ose)|an(cel|play(through)?))|t(imeupdate|oggle)|in(put|valid)|o(nline|ffline)|d(urationchange|r(op|ag(start|over|e(n(ter|d)|xit)|leave)?)|blclick)|un(handledrejection|load)|p(opstate|lay(ing)?|a(ste|use|ge(show|hide))|rogress)|e(nded|rror|mptied)|volumechange|key(down|up|press)|focus|w(heel|aiting)|l(oad(start|e(nd|d(data|metadata)))?|anguagechange)|a(uxclick|fterprint|bort)|r(e(s(ize|et)|jectionhandled)|atechange)|m(ouse(o(ut|ver)|down|up|enter|leave|move)|essage(error)?)|b(efore(unload|print)|lur))(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 attributes, event handlers", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.event-handler.$1.html", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "begin": "(?=[^\\s=<>`/]|/(?!>))", - "end": "(?!\\G)", - "name": "meta.embedded.line.js", - "patterns": [ - { - "captures": { - "0": { - "name": "source.js" - }, - "1": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "match": "(([^\\s\"'=<>`/]|/(?!>))+)", - "name": "string.unquoted.html" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.js", - "end": "(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.js-ignored-vscode" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "match": "([^\\n\"/]|/(?![/*]))+" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=\")|\\n", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.js" - } - }, - "end": "(?=\")|\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.js" - } - }, - "name": "comment.block.js" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "contentName": "source.js", - "end": "(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - }, - "1": { - "name": "source.js-ignored-vscode" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "captures": { - "0": { - "patterns": [ - { - "include": "source.js" - } - ] - } - }, - "match": "([^\\n'/]|/(?![/*]))+" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=')|\\n", - "name": "comment.line.double-slash.js" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.js" - } - }, - "end": "(?=')|\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.js" - } - }, - "name": "comment.block.js" - } - ] - } - ] - }, - { - "match": "=", - "name": "invalid.illegal.unexpected-equals-sign.html" - } - ] - } - ] - }, - { - "begin": "(data-[a-z\\-]+)(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "HTML5 attributes, data-*", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.data-x.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "(align|bgcolor|border)(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "invalid.deprecated.entity.other.attribute-name.html" - } - }, - "comment": "HTML attributes, deprecated", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "Anything else that is valid", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.unrecognized.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "match": "[^\\s>]+", - "name": "invalid.illegal.character-not-allowed-here.html" - } - ] - }, - "attribute-interior": { - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.html" - } - }, - "end": "(?<=[^\\s=])(?!\\s*=)|(?=/?>)", - "patterns": [ - { - "match": "([^\\s\"'=<>`/]|/(?!>))+", - "name": "string.unquoted.html" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.double.html", - "patterns": [ - { - "include": "#entities" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.html" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.html" - } - }, - "name": "string.quoted.single.html", - "patterns": [ - { - "include": "#entities" - } - ] - }, - { - "match": "=", - "name": "invalid.illegal.unexpected-equals-sign.html" - } - ] - } - ] - }, - "cdata": { - "begin": "", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.cdata.html" - }, - "comment": { - "begin": "", - "name": "comment.block.html", - "patterns": [ - { - "match": "\\G-?>", - "name": "invalid.illegal.characters-not-allowed-here.html" - }, - { - "match": ")", - "name": "invalid.illegal.characters-not-allowed-here.html" - }, - { - "match": "--!>", - "name": "invalid.illegal.characters-not-allowed-here.html" - } - ] - }, - "core-minus-invalid": { - "comment": "This should be the root pattern array includes minus #tags-invalid", - "patterns": [ - { - "include": "#xml-processing" - }, - { - "include": "#comment" - }, - { - "include": "#doctype" - }, - { - "include": "#cdata" - }, - { - "include": "#tags-valid" - }, - { - "include": "#entities" - } - ] - }, - "doctype": { - "begin": "", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.doctype.html", - "patterns": [ - { - "match": "\\G(?i:DOCTYPE)", - "name": "entity.name.tag.html" - }, - { - "begin": "\"", - "end": "\"", - "name": "string.quoted.double.html" - }, - { - "match": "[^\\s>]+", - "name": "entity.other.attribute-name.html" - } - ] - }, - "entities": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "912": { - "name": "punctuation.definition.entity.html" - } - }, - "comment": "Yes this is a bit ridiculous, there are quite a lot of these", - "match": "(?x)\n\t\t\t\t\t\t(&)\t(?=[a-zA-Z])\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(a(s(ymp(eq)?|cr|t)|n(d(slope|d|v|and)?|g(s(t|ph)|zarr|e|le|rt(vb(d)?)?|msd(a(h|c|d|e|f|a|g|b))?)?)|c(y|irc|d|ute|E)?|tilde|o(pf|gon)|uml|p(id|os|prox(eq)?|e|E|acir)?|elig|f(r)?|w(conint|int)|l(pha|e(ph|fsym))|acute|ring|grave|m(p|a(cr|lg))|breve)|A(s(sign|cr)|nd|MP|c(y|irc)|tilde|o(pf|gon)|uml|pplyFunction|fr|Elig|lpha|acute|ring|grave|macr|breve))\n\t\t\t\t\t\t | (B(scr|cy|opf|umpeq|e(cause|ta|rnoullis)|fr|a(ckslash|r(v|wed))|reve)|b(s(cr|im(e)?|ol(hsub|b)?|emi)|n(ot|e(quiv)?)|c(y|ong)|ig(s(tar|qcup)|c(irc|up|ap)|triangle(down|up)|o(times|dot|plus)|uplus|vee|wedge)|o(t(tom)?|pf|wtie|x(h(d|u|D|U)?|times|H(d|u|D|U)?|d(R|l|r|L)|u(R|l|r|L)|plus|D(R|l|r|L)|v(R|h|H|l|r|L)?|U(R|l|r|L)|V(R|h|H|l|r|L)?|minus|box))|Not|dquo|u(ll(et)?|mp(e(q)?|E)?)|prime|e(caus(e)?|t(h|ween|a)|psi|rnou|mptyv)|karow|fr|l(ock|k(1(2|4)|34)|a(nk|ck(square|triangle(down|left|right)?|lozenge)))|a(ck(sim(eq)?|cong|prime|epsilon)|r(vee|wed(ge)?))|r(eve|vbar)|brk(tbrk)?))\n\t\t\t\t\t\t | (c(s(cr|u(p(e)?|b(e)?))|h(cy|i|eck(mark)?)|ylcty|c(irc|ups(sm)?|edil|a(ps|ron))|tdot|ir(scir|c(eq|le(d(R|circ|S|dash|ast)|arrow(left|right)))?|e|fnint|E|mid)?|o(n(int|g(dot)?)|p(y(sr)?|f|rod)|lon(e(q)?)?|m(p(fn|le(xes|ment))?|ma(t)?))|dot|u(darr(l|r)|p(s|c(up|ap)|or|dot|brcap)?|e(sc|pr)|vee|wed|larr(p)?|r(vearrow(left|right)|ly(eq(succ|prec)|vee|wedge)|arr(m)?|ren))|e(nt(erdot)?|dil|mptyv)|fr|w(conint|int)|lubs(uit)?|a(cute|p(s|c(up|ap)|dot|and|brcup)?|r(on|et))|r(oss|arr))|C(scr|hi|c(irc|onint|edil|aron)|ircle(Minus|Times|Dot|Plus)|Hcy|o(n(tourIntegral|int|gruent)|unterClockwiseContourIntegral|p(f|roduct)|lon(e)?)|dot|up(Cap)?|OPY|e(nterDot|dilla)|fr|lo(seCurly(DoubleQuote|Quote)|ckwiseContourIntegral)|a(yleys|cute|p(italDifferentialD)?)|ross))\n\t\t\t\t\t\t | (d(s(c(y|r)|trok|ol)|har(l|r)|c(y|aron)|t(dot|ri(f)?)|i(sin|e|v(ide(ontimes)?|onx)?|am(s|ond(suit)?)?|gamma)|Har|z(cy|igrarr)|o(t(square|plus|eq(dot)?|minus)?|ublebarwedge|pf|wn(harpoon(left|right)|downarrows|arrow)|llar)|d(otseq|a(rr|gger))?|u(har|arr)|jcy|e(lta|g|mptyv)|f(isht|r)|wangle|lc(orn|rop)|a(sh(v)?|leth|rr|gger)|r(c(orn|rop)|bkarow)|b(karow|lac)|Arr)|D(s(cr|trok)|c(y|aron)|Scy|i(fferentialD|a(critical(Grave|Tilde|Do(t|ubleAcute)|Acute)|mond))|o(t(Dot|Equal)?|uble(Right(Tee|Arrow)|ContourIntegral|Do(t|wnArrow)|Up(DownArrow|Arrow)|VerticalBar|L(ong(RightArrow|Left(RightArrow|Arrow))|eft(RightArrow|Tee|Arrow)))|pf|wn(Right(TeeVector|Vector(Bar)?)|Breve|Tee(Arrow)?|arrow|Left(RightVector|TeeVector|Vector(Bar)?)|Arrow(Bar|UpArrow)?))|Zcy|el(ta)?|D(otrahd)?|Jcy|fr|a(shv|rr|gger)))\n\t\t\t\t\t\t | (e(s(cr|im|dot)|n(sp|g)|c(y|ir(c)?|olon|aron)|t(h|a)|o(pf|gon)|dot|u(ro|ml)|p(si(v|lon)?|lus|ar(sl)?)|e|D(ot|Dot)|q(s(im|lant(less|gtr))|c(irc|olon)|u(iv(DD)?|est|als)|vparsl)|f(Dot|r)|l(s(dot)?|inters|l)?|a(ster|cute)|r(Dot|arr)|g(s(dot)?|rave)?|x(cl|ist|p(onentiale|ectation))|m(sp(1(3|4))?|pty(set|v)?|acr))|E(s(cr|im)|c(y|irc|aron)|ta|o(pf|gon)|NG|dot|uml|TH|psilon|qu(ilibrium|al(Tilde)?)|fr|lement|acute|grave|x(ists|ponentialE)|m(pty(SmallSquare|VerySmallSquare)|acr)))\n\t\t\t\t\t\t | (f(scr|nof|cy|ilig|o(pf|r(k(v)?|all))|jlig|partint|emale|f(ilig|l(ig|lig)|r)|l(tns|lig|at)|allingdotseq|r(own|a(sl|c(1(2|8|3|4|5|6)|78|2(3|5)|3(8|4|5)|45|5(8|6)))))|F(scr|cy|illed(SmallSquare|VerySmallSquare)|o(uriertrf|pf|rAll)|fr))\n\t\t\t\t\t\t | (G(scr|c(y|irc|edil)|t|opf|dot|T|Jcy|fr|amma(d)?|reater(Greater|SlantEqual|Tilde|Equal(Less)?|FullEqual|Less)|g|breve)|g(s(cr|im(e|l)?)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|irc)|t(c(c|ir)|dot|quest|lPar|r(sim|dot|eq(qless|less)|less|a(pprox|rr)))?|imel|opf|dot|jcy|e(s(cc|dot(o(l)?)?|l(es)?)?|q(slant|q)?|l)?|v(nE|ertneqq)|fr|E(l)?|l(j|E|a)?|a(cute|p|mma(d)?)|rave|g(g)?|breve))\n\t\t\t\t\t\t | (h(s(cr|trok|lash)|y(phen|bull)|circ|o(ok(leftarrow|rightarrow)|pf|arr|rbar|mtht)|e(llip|arts(uit)?|rcon)|ks(earow|warow)|fr|a(irsp|lf|r(dcy|r(cir|w)?)|milt)|bar|Arr)|H(s(cr|trok)|circ|ilbertSpace|o(pf|rizontalLine)|ump(DownHump|Equal)|fr|a(cek|t)|ARDcy))\n\t\t\t\t\t\t | (i(s(cr|in(s(v)?|dot|v|E)?)|n(care|t(cal|prod|e(rcal|gers)|larhk)?|odot|fin(tie)?)?|c(y|irc)?|t(ilde)?|i(nfin|i(nt|int)|ota)?|o(cy|ta|pf|gon)|u(kcy|ml)|jlig|prod|e(cy|xcl)|quest|f(f|r)|acute|grave|m(of|ped|a(cr|th|g(part|e|line))))|I(scr|n(t(e(rsection|gral))?|visible(Comma|Times))|c(y|irc)|tilde|o(ta|pf|gon)|dot|u(kcy|ml)|Ocy|Jlig|fr|Ecy|acute|grave|m(plies|a(cr|ginaryI))?))\n\t\t\t\t\t\t | (j(s(cr|ercy)|c(y|irc)|opf|ukcy|fr|math)|J(s(cr|ercy)|c(y|irc)|opf|ukcy|fr))\n\t\t\t\t\t\t | (k(scr|hcy|c(y|edil)|opf|jcy|fr|appa(v)?|green)|K(scr|c(y|edil)|Hcy|opf|Jcy|fr|appa))\n\t\t\t\t\t\t | (l(s(h|cr|trok|im(e|g)?|q(uo(r)?|b)|aquo)|h(ar(d|u(l)?)|blk)|n(sim|e(q(q)?)?|E|ap(prox)?)|c(y|ub|e(il|dil)|aron)|Barr|t(hree|c(c|ir)|imes|dot|quest|larr|r(i(e|f)?|Par))?|Har|o(ng(left(arrow|rightarrow)|rightarrow|mapsto)|times|z(enge|f)?|oparrow(left|right)|p(f|lus|ar)|w(ast|bar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|r(dhar|ushar))|ur(dshar|uhar)|jcy|par(lt)?|e(s(s(sim|dot|eq(qgtr|gtr)|approx|gtr)|cc|dot(o(r)?)?|g(es)?)?|q(slant|q)?|ft(harpoon(down|up)|threetimes|leftarrows|arrow(tail)?|right(squigarrow|harpoons|arrow(s)?))|g)?|v(nE|ertneqq)|f(isht|loor|r)|E(g)?|l(hard|corner|tri|arr)?|a(ng(d|le)?|cute|t(e(s)?|ail)?|p|emptyv|quo|rr(sim|hk|tl|pl|fs|lp|b(fs)?)?|gran|mbda)|r(har(d)?|corner|tri|arr|m)|g(E)?|m(idot|oust(ache)?)|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr))|L(s(h|cr|trok)|c(y|edil|aron)|t|o(ng(RightArrow|left(arrow|rightarrow)|rightarrow|Left(RightArrow|Arrow))|pf|wer(RightArrow|LeftArrow))|T|e(ss(Greater|SlantEqual|Tilde|EqualGreater|FullEqual|Less)|ft(Right(Vector|Arrow)|Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|rightarrow|Floor|A(ngleBracket|rrow(RightArrow|Bar)?)))|Jcy|fr|l(eftarrow)?|a(ng|cute|placetrf|rr|mbda)|midot))\n\t\t\t\t\t\t | (M(scr|cy|inusPlus|opf|u|e(diumSpace|llintrf)|fr|ap)|m(s(cr|tpos)|ho|nplus|c(y|omma)|i(nus(d(u)?|b)?|cro|d(cir|dot|ast)?)|o(dels|pf)|dash|u(ltimap|map)?|p|easuredangle|DDot|fr|l(cp|dr)|a(cr|p(sto(down|up|left)?)?|l(t(ese)?|e)|rker)))\n\t\t\t\t\t\t | (n(s(hort(parallel|mid)|c(cue|e|r)?|im(e(q)?)?|u(cc(eq)?|p(set(eq(q)?)?|e|E)?|b(set(eq(q)?)?|e|E)?)|par|qsu(pe|be)|mid)|Rightarrow|h(par|arr|Arr)|G(t(v)?|g)|c(y|ong(dot)?|up|edil|a(p|ron))|t(ilde|lg|riangle(left(eq)?|right(eq)?)|gl)|i(s(d)?|v)?|o(t(ni(v(c|a|b))?|in(dot|v(c|a|b)|E)?)?|pf)|dash|u(m(sp|ero)?)?|jcy|p(olint|ar(sl|t|allel)?|r(cue|e(c(eq)?)?)?)|e(s(im|ear)|dot|quiv|ar(hk|r(ow)?)|xist(s)?|Arr)?|v(sim|infin|Harr|dash|Dash|l(t(rie)?|e|Arr)|ap|r(trie|Arr)|g(t|e))|fr|w(near|ar(hk|r(ow)?)|Arr)|V(dash|Dash)|l(sim|t(ri(e)?)?|dr|e(s(s)?|q(slant|q)?|ft(arrow|rightarrow))?|E|arr|Arr)|a(ng|cute|tur(al(s)?)?|p(id|os|prox|E)?|bla)|r(tri(e)?|ightarrow|arr(c|w)?|Arr)|g(sim|t(r)?|e(s|q(slant|q)?)?|E)|mid|L(t(v)?|eft(arrow|rightarrow)|l)|b(sp|ump(e)?))|N(scr|c(y|edil|aron)|tilde|o(nBreakingSpace|Break|t(R(ightTriangle(Bar|Equal)?|everseElement)|Greater(Greater|SlantEqual|Tilde|Equal|FullEqual|Less)?|S(u(cceeds(SlantEqual|Tilde|Equal)?|perset(Equal)?|bset(Equal)?)|quareSu(perset(Equal)?|bset(Equal)?))|Hump(DownHump|Equal)|Nested(GreaterGreater|LessLess)|C(ongruent|upCap)|Tilde(Tilde|Equal|FullEqual)?|DoubleVerticalBar|Precedes(SlantEqual|Equal)?|E(qual(Tilde)?|lement|xists)|VerticalBar|Le(ss(Greater|SlantEqual|Tilde|Equal|Less)?|ftTriangle(Bar|Equal)?))?|pf)|u|e(sted(GreaterGreater|LessLess)|wLine|gative(MediumSpace|Thi(nSpace|ckSpace)|VeryThinSpace))|Jcy|fr|acute))\n\t\t\t\t\t\t | (o(s(cr|ol|lash)|h(m|bar)|c(y|ir(c)?)|ti(lde|mes(as)?)|S|int|opf|d(sold|iv|ot|ash|blac)|uml|p(erp|lus|ar)|elig|vbar|f(cir|r)|l(c(ir|ross)|t|ine|arr)|a(st|cute)|r(slope|igof|or|d(er(of)?|f|m)?|v|arr)?|g(t|on|rave)|m(i(nus|cron|d)|ega|acr))|O(s(cr|lash)|c(y|irc)|ti(lde|mes)|opf|dblac|uml|penCurly(DoubleQuote|Quote)|ver(B(ar|rac(e|ket))|Parenthesis)|fr|Elig|acute|r|grave|m(icron|ega|acr)))\n\t\t\t\t\t\t | (p(s(cr|i)|h(i(v)?|one|mmat)|cy|i(tchfork|v)?|o(intint|und|pf)|uncsp|er(cnt|tenk|iod|p|mil)|fr|l(us(sim|cir|two|d(o|u)|e|acir|mn|b)?|an(ck(h)?|kv))|ar(s(im|l)|t|a(llel)?)?|r(sim|n(sim|E|ap)|cue|ime(s)?|o(d|p(to)?|f(surf|line|alar))|urel|e(c(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?)?|E|ap)?|m)|P(s(cr|i)|hi|cy|i|o(incareplane|pf)|fr|lusMinus|artialD|r(ime|o(duct|portion(al)?)|ecedes(SlantEqual|Tilde|Equal)?)?))\n\t\t\t\t\t\t | (q(scr|int|opf|u(ot|est(eq)?|at(int|ernions))|prime|fr)|Q(scr|opf|UOT|fr))\n\t\t\t\t\t\t | (R(s(h|cr)|ho|c(y|edil|aron)|Barr|ight(Ceiling|T(ee(Vector|Arrow)?|riangle(Bar|Equal)?)|Do(ubleBracket|wn(TeeVector|Vector(Bar)?))|Up(TeeVector|DownVector|Vector(Bar)?)|Vector(Bar)?|arrow|Floor|A(ngleBracket|rrow(Bar|LeftArrow)?))|o(undImplies|pf)|uleDelayed|e(verse(UpEquilibrium|E(quilibrium|lement)))?|fr|EG|a(ng|cute|rr(tl)?)|rightarrow)|r(s(h|cr|q(uo(r)?|b)|aquo)|h(o(v)?|ar(d|u(l)?))|nmid|c(y|ub|e(il|dil)|aron)|Barr|t(hree|imes|ri(e|f|ltri)?)|i(singdotseq|ng|ght(squigarrow|harpoon(down|up)|threetimes|left(harpoons|arrows)|arrow(tail)?|rightarrows))|Har|o(times|p(f|lus|ar)|a(ng|rr)|brk)|d(sh|ca|quo(r)?|ldhar)|uluhar|p(polint|ar(gt)?)|e(ct|al(s|ine|part)?|g)|f(isht|loor|r)|l(har|arr|m)|a(ng(d|e|le)?|c(ute|e)|t(io(nals)?|ail)|dic|emptyv|quo|rr(sim|hk|c|tl|pl|fs|w|lp|ap|b(fs)?)?)|rarr|x|moust(ache)?|b(arr|r(k(sl(d|u)|e)|ac(e|k))|brk)|A(tail|arr|rr)))\n\t\t\t\t\t\t | (s(s(cr|tarf|etmn|mile)|h(y|c(hcy|y)|ort(parallel|mid)|arp)|c(sim|y|n(sim|E|ap)|cue|irc|polint|e(dil)?|E|a(p|ron))?|t(ar(f)?|r(ns|aight(phi|epsilon)))|i(gma(v|f)?|m(ne|dot|plus|e(q)?|l(E)?|rarr|g(E)?)?)|zlig|o(pf|ftcy|l(b(ar)?)?)|dot(e|b)?|u(ng|cc(sim|n(sim|eqq|approx)|curlyeq|eq|approx)?|p(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|hs(ol|ub)|1|n(e|E)|2|d(sub|ot)|3|plus|e(dot)?|E|larr|mult)?|m|b(s(im|u(p|b)|et(neq(q)?|eq(q)?)?)|n(e|E)|dot|plus|e(dot)?|E|rarr|mult)?)|pa(des(uit)?|r)|e(swar|ct|tm(n|inus)|ar(hk|r(ow)?)|xt|mi|Arr)|q(su(p(set(eq)?|e)?|b(set(eq)?|e)?)|c(up(s)?|ap(s)?)|u(f|ar(e|f))?)|fr(own)?|w(nwar|ar(hk|r(ow)?)|Arr)|larr|acute|rarr|m(t(e(s)?)?|i(d|le)|eparsl|a(shp|llsetminus))|bquo)|S(scr|hort(RightArrow|DownArrow|UpArrow|LeftArrow)|c(y|irc|edil|aron)?|tar|igma|H(cy|CHcy)|opf|u(c(hThat|ceeds(SlantEqual|Tilde|Equal)?)|p(set|erset(Equal)?)?|m|b(set(Equal)?)?)|OFTcy|q(uare(Su(perset(Equal)?|bset(Equal)?)|Intersection|Union)?|rt)|fr|acute|mallCircle))\n\t\t\t\t\t\t | (t(s(hcy|c(y|r)|trok)|h(i(nsp|ck(sim|approx))|orn|e(ta(sym|v)?|re(4|fore))|k(sim|ap))|c(y|edil|aron)|i(nt|lde|mes(d|b(ar)?)?)|o(sa|p(cir|f(ork)?|bot)?|ea)|dot|prime|elrec|fr|w(ixt|ohead(leftarrow|rightarrow))|a(u|rget)|r(i(sb|time|dot|plus|e|angle(down|q|left(eq)?|right(eq)?)?|minus)|pezium|ade)|brk)|T(s(cr|trok)|RADE|h(i(nSpace|ckSpace)|e(ta|refore))|c(y|edil|aron)|S(cy|Hcy)|ilde(Tilde|Equal|FullEqual)?|HORN|opf|fr|a(u|b)|ripleDot))\n\t\t\t\t\t\t | (u(scr|h(ar(l|r)|blk)|c(y|irc)|t(ilde|dot|ri(f)?)|Har|o(pf|gon)|d(har|arr|blac)|u(arr|ml)|p(si(h|lon)?|harpoon(left|right)|downarrow|uparrows|lus|arrow)|f(isht|r)|wangle|l(c(orn(er)?|rop)|tri)|a(cute|rr)|r(c(orn(er)?|rop)|tri|ing)|grave|m(l|acr)|br(cy|eve)|Arr)|U(scr|n(ion(Plus)?|der(B(ar|rac(e|ket))|Parenthesis))|c(y|irc)|tilde|o(pf|gon)|dblac|uml|p(si(lon)?|downarrow|Tee(Arrow)?|per(RightArrow|LeftArrow)|DownArrow|Equilibrium|arrow|Arrow(Bar|DownArrow)?)|fr|a(cute|rr(ocir)?)|ring|grave|macr|br(cy|eve)))\n\t\t\t\t\t\t | (v(s(cr|u(pn(e|E)|bn(e|E)))|nsu(p|b)|cy|Bar(v)?|zigzag|opf|dash|prop|e(e(eq|bar)?|llip|r(t|bar))|Dash|fr|ltri|a(ngrt|r(s(igma|u(psetneq(q)?|bsetneq(q)?))|nothing|t(heta|riangle(left|right))|p(hi|i|ropto)|epsilon|kappa|r(ho)?))|rtri|Arr)|V(scr|cy|opf|dash(l)?|e(e|r(yThinSpace|t(ical(Bar|Separator|Tilde|Line))?|bar))|Dash|vdash|fr|bar))\n\t\t\t\t\t\t | (w(scr|circ|opf|p|e(ierp|d(ge(q)?|bar))|fr|r(eath)?)|W(scr|circ|opf|edge|fr))\n\t\t\t\t\t\t | (X(scr|i|opf|fr)|x(s(cr|qcup)|h(arr|Arr)|nis|c(irc|up|ap)|i|o(time|dot|p(f|lus))|dtri|u(tri|plus)|vee|fr|wedge|l(arr|Arr)|r(arr|Arr)|map))\n\t\t\t\t\t\t | (y(scr|c(y|irc)|icy|opf|u(cy|ml)|en|fr|ac(y|ute))|Y(scr|c(y|irc)|opf|uml|Icy|Ucy|fr|acute|Acy))\n\t\t\t\t\t\t | (z(scr|hcy|c(y|aron)|igrarr|opf|dot|e(ta|etrf)|fr|w(nj|j)|acute)|Z(scr|c(y|aron)|Hcy|opf|dot|e(ta|roWidthSpace)|fr|acute))\n\t\t\t\t\t\t)\n\t\t\t\t\t\t(;)\n\t\t\t\t\t", - "name": "constant.character.entity.named.$2.html" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "3": { - "name": "punctuation.definition.entity.html" - } - }, - "match": "(&)#[0-9]+(;)", - "name": "constant.character.entity.numeric.decimal.html" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.html" - }, - "3": { - "name": "punctuation.definition.entity.html" - } - }, - "match": "(&)#[xX][0-9a-fA-F]+(;)", - "name": "constant.character.entity.numeric.hexadecimal.html" - }, - { - "match": "&(?=[a-zA-Z0-9]+;)", - "name": "invalid.illegal.ambiguous-ampersand.html" - } - ] - }, - "math": { - "patterns": [ - { - "begin": "(?i)(<)(math)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()", - "endCaptures": { - "0": { - "name": "meta.tag.structure.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.structure.$2.html", - "patterns": [ - { - "begin": "(?)\\G", - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - } - ], - "repository": { - "attribute": { - "patterns": [ - { - "begin": "(s(hift|ymmetric|cript(sizemultiplier|level|minsize)|t(ackalign|retchy)|ide|u(pscriptshift|bscriptshift)|e(parator(s)?|lection)|rc)|h(eight|ref)|n(otation|umalign)|c(haralign|olumn(spa(n|cing)|width|lines|align)|lose|rossout)|i(n(dent(shift(first|last)?|target|align(first|last)?)|fixlinebreakstyle)|d)|o(pen|verflow)|d(i(splay(style)?|r)|e(nomalign|cimalpoint|pth))|position|e(dge|qual(columns|rows))|voffset|f(orm|ence|rame(spacing)?)|width|l(space|ine(thickness|leading|break(style|multchar)?)|o(ngdivstyle|cation)|ength|quote|argeop)|a(c(cent(under)?|tiontype)|l(t(text|img(-(height|valign|width))?)|ign(mentscope)?))|r(space|ow(spa(n|cing)|lines|align)|quote)|groupalign|x(link:href|mlns)|m(in(size|labelspacing)|ovablelimits|a(th(size|color|variant|background)|xsize))|bevelled)(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "Anything else that is valid", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.unrecognized.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "match": "[^\\s>]+", - "name": "invalid.illegal.character-not-allowed-here.html" - } - ] - }, - "tags": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#cdata" - }, - { - "captures": { - "0": { - "name": "meta.tag.structure.math.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.structure.math.$2.html" - }, - { - "begin": "(?i)(<)(annotation|annotation-xml|semantics|menclose|merror|mfenced|mfrac|mpadded|mphantom|mroot|mrow|msqrt|mstyle|mmultiscripts|mover|mprescripts|msub|msubsup|msup|munder|munderover|none|mlabeledtr|mtable|mtd|mtr|mlongdiv|mscarries|mscarry|msgroup|msline|msrow|mstack|maction)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.math.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.inline.math.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.inline.math.$2.html" - }, - { - "begin": "(?i)(<)(mi|mn|mo|ms|mspace|mtext|maligngroup|malignmark)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.inline.math.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.object.math.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.object.math.$2.html" - }, - { - "begin": "(?i)(<)(mglyph)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.object.math.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.other.invalid.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.other.invalid.html" - }, - { - "begin": "(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.other.invalid.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.invalid.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "include": "#tags-invalid" - } - ] - } - } - }, - "svg": { - "patterns": [ - { - "begin": "(?i)(<)(svg)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()", - "endCaptures": { - "0": { - "name": "meta.tag.structure.$2.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.element.structure.$2.html", - "patterns": [ - { - "begin": "(?)\\G", - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - } - ], - "repository": { - "attribute": { - "patterns": [ - { - "begin": "(s(hape-rendering|ystemLanguage|cale|t(yle|itchTiles|op-(color|opacity)|dDeviation|em(h|v)|artOffset|r(i(ng|kethrough-(thickness|position))|oke(-(opacity|dash(offset|array)|width|line(cap|join)|miterlimit))?))|urfaceScale|p(e(cular(Constant|Exponent)|ed)|acing|readMethod)|eed|lope)|h(oriz-(origin-x|adv-x)|eight|anging|ref(lang)?)|y(1|2|ChannelSelector)?|n(umOctaves|ame)|c(y|o(ntentS(criptType|tyleType)|lor(-(interpolation(-filters)?|profile|rendering))?)|ursor|l(ip(-(path|rule)|PathUnits)?|ass)|a(p-height|lcMode)|x)|t(ype|o|ext(-(decoration|anchor|rendering)|Length)|a(rget(X|Y)?|b(index|leValues))|ransform)|i(n(tercept|2)?|d(eographic)?|mage-rendering)|z(oomAndPan)?|o(p(erator|acity)|ver(flow|line-(thickness|position))|ffset|r(i(ent(ation)?|gin)|der))|d(y|i(splay|visor|ffuseConstant|rection)|ominant-baseline|ur|e(scent|celerate)|x)?|u(1|n(i(code(-(range|bidi))?|ts-per-em)|derline-(thickness|position))|2)|p(ing|oint(s(At(X|Y|Z))?|er-events)|a(nose-1|t(h(Length)?|tern(ContentUnits|Transform|Units))|int-order)|r(imitiveUnits|eserveA(spectRatio|lpha)))|e(n(d|able-background)|dgeMode|levation|x(ternalResourcesRequired|ponent))|v(i(sibility|ew(Box|Target))|-(hanging|ideographic|alphabetic|mathematical)|e(ctor-effect|r(sion|t-(origin-(y|x)|adv-y)))|alues)|k(1|2|3|e(y(Splines|Times|Points)|rn(ing|el(Matrix|UnitLength)))|4)?|f(y|il(ter(Res|Units)?|l(-(opacity|rule))?)|o(nt-(s(t(yle|retch)|ize(-adjust)?)|variant|family|weight)|rmat)|lood-(color|opacity)|r(om)?|x)|w(idth(s)?|ord-spacing|riting-mode)|l(i(ghting-color|mitingConeAngle)|ocal|e(ngthAdjust|tter-spacing)|ang)|a(scent|cc(umulate|ent-height)|ttribute(Name|Type)|zimuth|dditive|utoReverse|l(ignment-baseline|phabetic|lowReorder)|rabic-form|mplitude)|r(y|otate|e(s(tart|ult)|ndering-intent|peat(Count|Dur)|quired(Extensions|Features)|f(X|Y|errerPolicy)|l)|adius|x)?|g(1|2|lyph(Ref|-(name|orientation-(horizontal|vertical)))|radient(Transform|Units))|x(1|2|ChannelSelector|-height|link:(show|href|t(ype|itle)|a(ctuate|rcrole)|role)|ml:(space|lang|base))?|m(in|ode|e(thod|dia)|a(sk(ContentUnits|Units)?|thematical|rker(Height|-(start|end|mid)|Units|Width)|x))|b(y|ias|egin|ase(Profile|line-shift|Frequency)|box))(?![\\w:-])", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "begin": "([^\\x{0020}\"'<>/=\\x{0000}-\\x{001F}\\x{007F}-\\x{009F}\\x{FDD0}-\\x{FDEF}\\x{FFFE}\\x{FFFF}\\x{1FFFE}\\x{1FFFF}\\x{2FFFE}\\x{2FFFF}\\x{3FFFE}\\x{3FFFF}\\x{4FFFE}\\x{4FFFF}\\x{5FFFE}\\x{5FFFF}\\x{6FFFE}\\x{6FFFF}\\x{7FFFE}\\x{7FFFF}\\x{8FFFE}\\x{8FFFF}\\x{9FFFE}\\x{9FFFF}\\x{AFFFE}\\x{AFFFF}\\x{BFFFE}\\x{BFFFF}\\x{CFFFE}\\x{CFFFF}\\x{DFFFE}\\x{DFFFF}\\x{EFFFE}\\x{EFFFF}\\x{FFFFE}\\x{FFFFF}\\x{10FFFE}\\x{10FFFF}]+)", - "beginCaptures": { - "0": { - "name": "entity.other.attribute-name.html" - } - }, - "comment": "Anything else that is valid", - "end": "(?=\\s*+[^=\\s])", - "name": "meta.attribute.unrecognized.$1.html", - "patterns": [ - { - "include": "#attribute-interior" - } - ] - }, - { - "match": "[^\\s>]+", - "name": "invalid.illegal.character-not-allowed-here.html" - } - ] - }, - "tags": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#cdata" - }, - { - "captures": { - "0": { - "name": "meta.tag.metadata.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.metadata.svg.$2.html" - }, - { - "begin": "(?i)(<)(color-profile|desc|metadata|script|style|title)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.structure.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.structure.svg.$2.html" - }, - { - "begin": "(?i)(<)(animateMotion|clipPath|defs|feComponentTransfer|feDiffuseLighting|feMerge|feSpecularLighting|filter|g|hatch|linearGradient|marker|mask|mesh|meshgradient|meshpatch|meshrow|pattern|radialGradient|switch|text|textPath)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.structure.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.inline.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.inline.svg.$2.html" - }, - { - "begin": "(?i)(<)(a|animate|discard|feBlend|feColorMatrix|feComposite|feConvolveMatrix|feDisplacementMap|feDistantLight|feDropShadow|feFlood|feFuncA|feFuncB|feFuncG|feFuncR|feGaussianBlur|feMergeNode|feMorphology|feOffset|fePointLight|feSpotLight|feTile|feTurbulence|hatchPath|mpath|set|solidcolor|stop|tspan)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.inline.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.object.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.object.svg.$2.html" - }, - { - "begin": "(?i)(<)(a|circle|ellipse|feImage|foreignObject|image|line|path|polygon|polyline|rect|symbol|use|view)(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.object.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.other.svg.$2.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.other.svg.$2.html" - }, - { - "begin": "(?i)(<)((altGlyph|altGlyphDef|altGlyphItem|animateColor|animateTransform|cursor|font|font-face|font-face-format|font-face-name|font-face-src|font-face-uri|glyph|glyphRef|hkern|missing-glyph|tref|vkern))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.other.svg.$2.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "captures": { - "0": { - "name": "meta.tag.other.invalid.void.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "match": "(?i)(<)(([\\w:]+))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(/>))", - "name": "meta.element.other.invalid.html" - }, - { - "begin": "(?i)(<)((\\w[^\\s>]*))(?=\\s|/?>)(?:(([^\"'>]|\"[^\"]*\"|'[^']*')*)(>))?", - "beginCaptures": { - "0": { - "name": "meta.tag.other.invalid.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.unrecognized-tag.html" - }, - "4": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(?i)()|(/>)|(?=)\\G", - "end": "(?=/>)|>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.invalid.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#tags" - } - ] - }, - { - "include": "#tags-invalid" - } - ] - } - } - }, - "tags-invalid": { - "patterns": [ - { - "begin": "(]*))(?)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.$2.html", - "patterns": [ - { - "include": "#attribute" - } - ] - } - ] - }, - "tags-valid": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=<(?i:style)\\b(?!-))", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.leading.html" - } - }, - "end": "(?!\\G)([ \\t]*$\\n?)?", - "endCaptures": { - "1": { - "name": "punctuation.whitespace.embedded.trailing.html" - } - }, - "patterns": [ - { - "begin": "(?i)(<)(style)(?=\\s|/?>)", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.style.start.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(?i)((<)/)(style)\\s*(>)", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.style.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "source.css-ignored-vscode" - }, - "3": { - "name": "entity.name.tag.html" - }, - "4": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "\\G", - "captures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "(>)", - "name": "meta.tag.metadata.style.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.script.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "\\G", - "end": "(?=/)", - "patterns": [ - { - "begin": "(>)", - "beginCaptures": { - "0": { - "name": "meta.tag.metadata.script.start.html" - }, - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "end": "((<))(?=/(?i:script))", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.script.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "source.js-ignored-vscode" - } - }, - "patterns": [ - { - "begin": "\\G", - "end": "(?=\t\t\t\t\t\t\t\t\t\t\t# Tag without type attribute\n\t\t\t\t\t\t\t\t\t\t\t\t | type(?=[\\s=])\n\t\t\t\t\t\t\t\t\t\t\t\t \t(?!\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t''\t\t\t\t\t\t\t\t# Empty\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | \"\"\t\t\t\t\t\t\t\t\t# Values\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t | ('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\t\t\t\t\t\t\t# Text mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tjavascript(1\\.[0-5])?\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | x-javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | jscript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | livescript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | babel\t\t\t\t\t\t# Javascript variant currently\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t\t\t\t\t\t\t\t# recognized as such\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | application/\t\t\t\t\t# Application mime-types\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t(x-)?javascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-)?ecmascript\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t | module\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t \t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)", - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?ix:\n\t\t\t\t\t\t\t\t\t\t\t\t(?=\n\t\t\t\t\t\t\t\t\t\t\t\t\ttype\\s*=\\s*\n\t\t\t\t\t\t\t\t\t\t\t\t\t('|\"|)\n\t\t\t\t\t\t\t\t\t\t\t\t\ttext/\n\t\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tx-handlebars\n\t\t\t\t\t\t\t\t\t\t\t\t\t | (x-(handlebars-)?|ng-)?template\n\t\t\t\t\t\t\t\t\t\t\t\t\t | html\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t\t[\\s\"'>]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t)", - "end": "((<))(?=/(?i:script))", - "endCaptures": { - "0": { - "name": "meta.tag.metadata.script.end.html" - }, - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "text.html.basic" - } - }, - "patterns": [ - { - "begin": "\\G", - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.script.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?!\\G)", - "end": "(?=)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(noscript|title)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(col|hr|input)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(address|article|aside|blockquote|body|button|caption|colgroup|datalist|dd|details|dialog|div|dl|dt|fieldset|figcaption|figure|footer|form|head|header|hgroup|html|h[1-6]|label|legend|li|main|map|menu|meter|nav|ol|optgroup|option|output|p|pre|progress|section|select|slot|summary|table|tbody|td|template|textarea|tfoot|th|thead|tr|ul)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(area|br|wbr)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(a|abbr|b|bdi|bdo|cite|code|data|del|dfn|em|i|ins|kbd|mark|q|rp|rt|ruby|s|samp|small|span|strong|sub|sup|time|u|var)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(embed|img|param|source|track)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)(audio|canvas|iframe|object|picture|video)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((basefont|isindex))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.metadata.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((center|frameset|noembed|noframes))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.structure.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((acronym|big|blink|font|strike|tt|xmp))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.inline.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((frame))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.void.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((applet))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.deprecated.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.object.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)(<)((dir|keygen|listing|menuitem|plaintext|spacer))(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.no-longer-supported.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.$2.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "(?i)()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - }, - "3": { - "name": "invalid.illegal.no-longer-supported.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.other.$2.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "include": "#math" - }, - { - "include": "#svg" - }, - { - "begin": "(<)([a-zA-Z][.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*-[\\-.0-9_a-zA-Z\\x{00B7}\\x{00C0}-\\x{00D6}\\x{00D8}-\\x{00F6}\\x{00F8}-\\x{037D}\\x{037F}-\\x{1FFF}\\x{200C}-\\x{200D}\\x{203F}-\\x{2040}\\x{2070}-\\x{218F}\\x{2C00}-\\x{2FEF}\\x{3001}-\\x{D7FF}\\x{F900}-\\x{FDCF}\\x{FDF0}-\\x{FFFD}\\x{10000}-\\x{EFFFF}]*)(?=\\s|/?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "/?>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.custom.start.html", - "patterns": [ - { - "include": "#attribute" - } - ] - }, - { - "begin": "()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.end.html" - } - }, - "name": "meta.tag.custom.end.html", - "patterns": [ - { - "include": "#attribute" - } - ] - } - ] - }, - "xml-processing": { - "begin": "(<\\?)(xml)", - "captures": { - "1": { - "name": "punctuation.definition.tag.html" - }, - "2": { - "name": "entity.name.tag.html" - } - }, - "end": "(\\?>)", - "name": "meta.tag.metadata.processing.xml.html", - "patterns": [ - { - "include": "#attribute" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/html/test/colorize-fixtures/12750.html b/extensions/html/test/colorize-fixtures/12750.html deleted file mode 100644 index 1b0c92a7125..00000000000 --- a/extensions/html/test/colorize-fixtures/12750.html +++ /dev/null @@ -1,6 +0,0 @@ - - \ No newline at end of file diff --git a/extensions/html/test/colorize-fixtures/13448.html b/extensions/html/test/colorize-fixtures/13448.html deleted file mode 100644 index 7485378f0ff..00000000000 --- a/extensions/html/test/colorize-fixtures/13448.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/extensions/html/test/colorize-fixtures/25920.html b/extensions/html/test/colorize-fixtures/25920.html deleted file mode 100644 index d4d93e4bcd1..00000000000 --- a/extensions/html/test/colorize-fixtures/25920.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/extensions/html/test/colorize-fixtures/test-embedding.html b/extensions/html/test/colorize-fixtures/test-embedding.html deleted file mode 100644 index 87f92b6264b..00000000000 --- a/extensions/html/test/colorize-fixtures/test-embedding.html +++ /dev/null @@ -1,6 +0,0 @@ - - - -
-
-
diff --git a/extensions/html/test/colorize-fixtures/test.html b/extensions/html/test/colorize-fixtures/test.html deleted file mode 100644 index 13fd84fbd06..00000000000 --- a/extensions/html/test/colorize-fixtures/test.html +++ /dev/null @@ -1,42 +0,0 @@ - - - - VSCode Tests - - - - - -
- - - - - - - - - \ No newline at end of file diff --git a/extensions/html/test/colorize-results/12750_html.json b/extensions/html/test/colorize-results/12750_html.json deleted file mode 100644 index a4f0184b51c..00000000000 --- a/extensions/html/test/colorize-results/12750_html.json +++ /dev/null @@ -1,442 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text/javascript", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "window", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js variable.other.object.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js punctuation.accessor.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "alert", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.begin.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "hello", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.end.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.js punctuation.terminator.statement.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "window", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js variable.other.object.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js punctuation.accessor.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "alert", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.begin.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "hello", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.end.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.js punctuation.terminator.statement.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/html/test/colorize-results/13448_html.json b/extensions/html/test/colorize-results/13448_html.json deleted file mode 100644 index c0c27de8dab..00000000000 --- a/extensions/html/test/colorize-results/13448_html.json +++ /dev/null @@ -1,167 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.derivative meta.tag.custom.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "ion-view", - "t": "text.html.derivative meta.tag.custom.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.custom.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.custom.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "button-view", - "t": "text.html.derivative meta.tag.custom.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": "/>", - "t": "text.html.derivative meta.tag.custom.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.custom.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "font-face", - "t": "text.html.derivative meta.tag.custom.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.custom.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.custom.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.custom.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/html/test/colorize-results/25920_html.json b/extensions/html/test/colorize-results/25920_html.json deleted file mode 100644 index 9aa58b607aa..00000000000 --- a/extensions/html/test/colorize-results/25920_html.json +++ /dev/null @@ -1,1014 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.html.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "html", - "t": "text.html.derivative meta.tag.structure.html.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.html.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text/html", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative meta.embedded.block.html text.html.basic", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "foo", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.single.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.single.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html text.html.basic", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "module", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "var", - "t": "text.html.derivative meta.embedded.block.html source.js meta.var.expr.js storage.type.js", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.var.expr.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "x", - "t": "text.html.derivative meta.embedded.block.html source.js meta.var.expr.js meta.var-single-variable.expr.js meta.definition.variable.js variable.other.readwrite.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.var.expr.js meta.var-single-variable.expr.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html source.js meta.var.expr.js keyword.operator.assignment.js", - "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" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.var.expr.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "9", - "t": "text.html.derivative meta.embedded.block.html source.js meta.var.expr.js constant.numeric.decimal.js", - "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" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.js punctuation.terminator.statement.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text/ng-template", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative meta.embedded.block.html text.html.basic", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "foo", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.single.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.single.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.embedded.block.html text.html.basic meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html text.html.basic", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.body.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "body", - "t": "text.html.derivative meta.tag.structure.body.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.structure.body.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.derivative meta.tag.structure.body.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.structure.body.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.tag.structure.body.start.html meta.attribute.class.html string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "bar", - "t": "text.html.derivative meta.tag.structure.body.start.html meta.attribute.class.html string.quoted.single.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.tag.structure.body.start.html meta.attribute.class.html string.quoted.single.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.body.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.body.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.html.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] diff --git a/extensions/html/test/colorize-results/test-embedding_html.json b/extensions/html/test/colorize-results/test-embedding_html.json deleted file mode 100644 index cd3af42bf2c..00000000000 --- a/extensions/html/test/colorize-results/test-embedding_html.json +++ /dev/null @@ -1,1003 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "console", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js variable.other.object.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js punctuation.accessor.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "log", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.begin.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "x", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.end.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "style", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "test", - "t": "text.html.derivative meta.embedded.block.html source.css meta.selector.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.section.property-list.begin.bracket.curly.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "display", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css meta.property-name.css support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.separator.key-value.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "none", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css meta.property-value.css support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.section.property-list.end.bracket.curly.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.begin.html source.css-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "style", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.inline.a.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "a", - "t": "text.html.derivative meta.tag.inline.a.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.a.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "onblur", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.blur.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.blur.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.blur.html meta.embedded.line.js string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "doBlur", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.blur.html meta.embedded.line.js string.quoted.double.html source.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.blur.html meta.embedded.line.js string.quoted.double.html source.js meta.brace.round.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.blur.html meta.embedded.line.js string.quoted.double.html punctuation.definition.string.end.html source.js-ignored-vscode", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.a.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "onclick", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.click.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.click.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.click.html meta.embedded.line.js string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "doClick", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.click.html meta.embedded.line.js string.quoted.single.html source.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.click.html meta.embedded.line.js string.quoted.single.html source.js meta.brace.round.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.click.html meta.embedded.line.js string.quoted.single.html punctuation.definition.string.end.html source.js-ignored-vscode", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.a.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ondrag", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.drag.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.drag.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "doDrag", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.drag.html meta.embedded.line.js string.unquoted.html meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.html: #0000FF", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.event-handler.drag.html meta.embedded.line.js string.unquoted.html meta.brace.round.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.inline.a.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.inline.a.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.derivative meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.structure.div.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "style", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html meta.embedded.line.css string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "x { }", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html meta.embedded.line.css string.quoted.double.html source.css", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html meta.embedded.line.css string.quoted.double.html punctuation.definition.string.end.html source.css-ignored-vscode", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.derivative meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.structure.div.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "style", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html meta.embedded.line.css string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "y { }", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html meta.embedded.line.css string.quoted.single.html source.css", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html meta.embedded.line.css string.quoted.single.html punctuation.definition.string.end.html source.css-ignored-vscode", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.derivative meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.structure.div.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "style", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "z{}", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.style.html meta.embedded.line.css string.unquoted.html source.css", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/html/test/colorize-results/test_html.json b/extensions/html/test/colorize-results/test_html.json deleted file mode 100644 index dd8a4aa2043..00000000000 --- a/extensions/html/test/colorize-results/test_html.json +++ /dev/null @@ -1,3192 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.html.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "html", - "t": "text.html.derivative meta.tag.structure.html.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.html.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.head.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "head", - "t": "text.html.derivative meta.tag.structure.head.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.head.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.metadata.meta.void.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "meta", - "t": "text.html.derivative meta.tag.metadata.meta.void.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.metadata.meta.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "charset", - "t": "text.html.derivative meta.tag.metadata.meta.void.html meta.attribute.charset.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.metadata.meta.void.html meta.attribute.charset.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.metadata.meta.void.html meta.attribute.charset.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "utf-8", - "t": "text.html.derivative meta.tag.metadata.meta.void.html meta.attribute.charset.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.metadata.meta.void.html meta.attribute.charset.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.metadata.meta.void.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.metadata.title.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "title", - "t": "text.html.derivative meta.tag.metadata.title.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.metadata.title.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "VSCode Tests", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.metadata.title.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.metadata.link.void.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "link", - "t": "text.html.derivative meta.tag.metadata.link.void.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.metadata.link.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "href", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.href.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.href.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.href.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.css", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.href.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.href.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.metadata.link.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rel", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.rel.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.rel.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.rel.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "stylesheet", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.rel.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.metadata.link.void.html meta.attribute.rel.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.metadata.link.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/>", - "t": "text.html.derivative meta.tag.metadata.link.void.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative punctuation.whitespace.embedded.leading.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "style", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text/css", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html meta.attribute.type.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative meta.embedded.block.html source.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "body", - "t": "text.html.derivative meta.embedded.block.html source.css meta.selector.css entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.section.property-list.begin.bracket.curly.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "color", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css meta.property-name.css support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.separator.key-value.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "purple", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css meta.property-value.css support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.terminator.rule.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "background-color", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css meta.property-name.css support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.separator.key-value.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "#", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css meta.property-value.css constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "d8da3d", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css meta.property-value.css constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.terminator.rule.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.derivative meta.embedded.block.html source.css meta.property-list.css punctuation.section.property-list.end.bracket.curly.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t", - "t": "text.html.derivative meta.embedded.block.html source.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.begin.html source.css-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "style", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.head.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.body.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "body", - "t": "text.html.derivative meta.tag.structure.body.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.body.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.derivative meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.structure.div.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.id.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.id.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.id.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "mocha", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.id.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.id.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.derivative comment.block.html punctuation.definition.comment.html", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "text.html.derivative punctuation.whitespace.embedded.leading.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "src", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/out/vs/loader.js", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative punctuation.whitespace.embedded.leading.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "src", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "https://cdn.rawgit.com/mochajs/mocha/2.2.5/mocha.js", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.src.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative punctuation.whitespace.embedded.leading.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "mocha", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js variable.other.object.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js punctuation.accessor.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "setup", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.begin.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "tdd", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js string.quoted.single.js punctuation.definition.string.end.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.js punctuation.terminator.statement.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "require", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js variable.other.object.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js punctuation.accessor.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "config", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "baseUrl", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.object-literal.key.js", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": ":", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.object-literal.key.js punctuation.separator.key-value.js", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js string.quoted.single.js punctuation.definition.string.begin.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/out", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js string.quoted.single.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js string.quoted.single.js punctuation.definition.string.end.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js punctuation.separator.comma.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "paths", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.object-literal.key.js", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": ":", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.object-literal.key.js punctuation.separator.key-value.js", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "assert", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js meta.object.member.js meta.object-literal.key.js", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": ":", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js meta.object.member.js meta.object-literal.key.js punctuation.separator.key-value.js", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js meta.object.member.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js meta.object.member.js string.quoted.single.js punctuation.definition.string.begin.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/test/assert.js", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js meta.object.member.js string.quoted.single.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js meta.object.member.js string.quoted.single.js punctuation.definition.string.end.js", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\t\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js meta.object.member.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js meta.objectliteral.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ")", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.js punctuation.terminator.statement.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "require", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function-call.js support.function.js", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{ ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "modules", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js variable.other.readwrite.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js meta.object.member.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.derivative meta.embedded.block.html source.js meta.objectliteral.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ",", - "t": "text.html.derivative meta.embedded.block.html source.js punctuation.separator.comma.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "function", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js storage.type.function.js", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "(", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.parameters.js punctuation.definition.parameters.begin.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ")", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.parameters.js punctuation.definition.parameters.end.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "mocha", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js meta.function-call.js variable.other.object.js", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js meta.function-call.js punctuation.accessor.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "run", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js meta.function-call.js entity.name.function.js", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js punctuation.terminator.statement.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.derivative meta.embedded.block.html source.js meta.function.expression.js meta.block.js punctuation.definition.block.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ")", - "t": "text.html.derivative meta.embedded.block.html source.js meta.brace.round.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.derivative meta.embedded.block.html source.js punctuation.terminator.statement.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t", - "t": "text.html.derivative meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.derivative meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.structure.div.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "js-stale-session-flash stale-session-flash flash flash-warn flash-banner hidden", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.inline.span.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "span", - "t": "text.html.derivative meta.tag.inline.span.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.span.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "codicon", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html string.unquoted.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.inline.span.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.inline.span.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.inline.span.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "span", - "t": "text.html.derivative meta.tag.inline.span.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.span.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "signed-in-tab-flash", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.inline.span.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "You signed in with another tab or window. ", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.inline.a.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "a", - "t": "text.html.derivative meta.tag.inline.a.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.a.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "href", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.inline.a.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Reload", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.inline.a.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " to refresh your session.", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.inline.span.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.inline.span.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "span", - "t": "text.html.derivative meta.tag.inline.span.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.span.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "signed-out-tab-flash", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.span.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.inline.span.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "You signed out in another tab or window. ", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.derivative meta.tag.inline.a.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "a", - "t": "text.html.derivative meta.tag.inline.a.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.derivative meta.tag.inline.a.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "href", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.derivative meta.tag.inline.a.start.html meta.attribute.href.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.derivative meta.tag.inline.a.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Reload", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.inline.a.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " to refresh your session.", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.inline.span.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.derivative", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.body.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.derivative meta.tag.structure.html.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/ini/.vscodeignore b/extensions/ini/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/ini/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/ini/cgmanifest.json b/extensions/ini/cgmanifest.json deleted file mode 100644 index 772dc25a3ac..00000000000 --- a/extensions/ini/cgmanifest.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "textmate/ini.tmbundle", - "repositoryUrl": "https://github.com/textmate/ini.tmbundle", - "commitHash": "2af0cbb0704940f967152616f2f1ff0aae6287a6" - } - }, - "licenseDetail": [ - "Copyright (c) textmate-ini.tmbundle project authors", - "", - "If not otherwise specified (see below), files in this folder fall under the following license: ", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information, ", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added ", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example ", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ], - "license": "TextMate Bundle License", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/ini/ini.language-configuration.json b/extensions/ini/ini.language-configuration.json deleted file mode 100644 index c688aee426d..00000000000 --- a/extensions/ini/ini.language-configuration.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "comments": { - "lineComment": ";", - "blockComment": [ ";", " " ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ] -} diff --git a/extensions/ini/package.json b/extensions/ini/package.json deleted file mode 100644 index 24d86072749..00000000000 --- a/extensions/ini/package.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "name": "ini", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js textmate/ini.tmbundle Syntaxes/Ini.plist ./syntaxes/ini.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "ini", - "extensions": [ ".ini"], - "aliases": [ "Ini", "ini" ], - "configuration": "./ini.language-configuration.json" - }, - { - "id": "properties", - "extensions": [ ".properties", ".cfg", ".conf", ".directory", ".gitattributes", ".gitconfig", ".gitmodules", ".editorconfig" ], - "filenames": [ "gitconfig" ], - "filenamePatterns": [ "**/.config/git/config", "**/.git/config" ], - "aliases": [ "Properties", "properties" ], - "configuration": "./properties.language-configuration.json" - }], - "grammars": [{ - "language": "ini", - "scopeName": "source.ini", - "path": "./syntaxes/ini.tmLanguage.json" - },{ - "language": "properties", - "scopeName": "source.ini", - "path": "./syntaxes/ini.tmLanguage.json" - }] - } -} diff --git a/extensions/ini/package.nls.json b/extensions/ini/package.nls.json deleted file mode 100644 index 9696de83059..00000000000 --- a/extensions/ini/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Ini Language Basics", - "description": "Provides syntax highlighting and bracket matching in Ini files." -} \ No newline at end of file diff --git a/extensions/ini/properties.language-configuration.json b/extensions/ini/properties.language-configuration.json deleted file mode 100644 index 7dd2e4ebe2e..00000000000 --- a/extensions/ini/properties.language-configuration.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "comments": { - "lineComment": "#", - "blockComment": [ "#", " " ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ] -} diff --git a/extensions/ini/syntaxes/ini.tmLanguage.json b/extensions/ini/syntaxes/ini.tmLanguage.json deleted file mode 100644 index bd1496149f7..00000000000 --- a/extensions/ini/syntaxes/ini.tmLanguage.json +++ /dev/null @@ -1,113 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/ini.tmbundle/blob/master/Syntaxes/Ini.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/ini.tmbundle/commit/2af0cbb0704940f967152616f2f1ff0aae6287a6", - "name": "Ini", - "scopeName": "source.ini", - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ini" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ini" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.ini" - } - ] - }, - { - "begin": "(^[ \\t]+)?(?=;)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ini" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": ";", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ini" - } - }, - "end": "\\n", - "name": "comment.line.semicolon.ini" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.definition.ini" - }, - "2": { - "name": "punctuation.separator.key-value.ini" - } - }, - "match": "\\b([a-zA-Z0-9_.-]+)\\b\\s*(=)" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.entity.ini" - }, - "3": { - "name": "punctuation.definition.entity.ini" - } - }, - "match": "^(\\[)(.*?)(\\])", - "name": "entity.name.section.group-title.ini" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ini" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ini" - } - }, - "name": "string.quoted.single.ini", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.ini" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ini" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ini" - } - }, - "name": "string.quoted.double.ini" - } - ] -} \ No newline at end of file diff --git a/extensions/ini/test/colorize-fixtures/test.ini b/extensions/ini/test/colorize-fixtures/test.ini deleted file mode 100644 index 1461ad45d9e..00000000000 --- a/extensions/ini/test/colorize-fixtures/test.ini +++ /dev/null @@ -1,10 +0,0 @@ -; last modified 1 April 2001 by John Doe -[owner] -name=John Doe -organization=Acme Widgets Inc. - -[database] -; use IP address in case network name resolution is not working -server=192.0.2.62 -port=143 -file="payroll.dat" \ No newline at end of file diff --git a/extensions/ini/test/colorize-results/test_ini.json b/extensions/ini/test/colorize-results/test_ini.json deleted file mode 100644 index 39c089f5cef..00000000000 --- a/extensions/ini/test/colorize-results/test_ini.json +++ /dev/null @@ -1,299 +0,0 @@ -[ - { - "c": ";", - "t": "source.ini comment.line.semicolon.ini punctuation.definition.comment.ini", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " last modified 1 April 2001 by John Doe", - "t": "source.ini comment.line.semicolon.ini", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "[", - "t": "source.ini entity.name.section.group-title.ini punctuation.definition.entity.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "owner", - "t": "source.ini entity.name.section.group-title.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.ini entity.name.section.group-title.ini punctuation.definition.entity.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "source.ini keyword.other.definition.ini", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "=", - "t": "source.ini punctuation.separator.key-value.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "John Doe", - "t": "source.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "organization", - "t": "source.ini keyword.other.definition.ini", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "=", - "t": "source.ini punctuation.separator.key-value.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Acme Widgets Inc.", - "t": "source.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.ini entity.name.section.group-title.ini punctuation.definition.entity.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "database", - "t": "source.ini entity.name.section.group-title.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.ini entity.name.section.group-title.ini punctuation.definition.entity.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ini comment.line.semicolon.ini punctuation.definition.comment.ini", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " use IP address in case network name resolution is not working", - "t": "source.ini comment.line.semicolon.ini", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "server", - "t": "source.ini keyword.other.definition.ini", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "=", - "t": "source.ini punctuation.separator.key-value.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "192.0.2.62", - "t": "source.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "port", - "t": "source.ini keyword.other.definition.ini", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "=", - "t": "source.ini punctuation.separator.key-value.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "143", - "t": "source.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "file", - "t": "source.ini keyword.other.definition.ini", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "=", - "t": "source.ini punctuation.separator.key-value.ini", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.ini string.quoted.double.ini punctuation.definition.string.begin.ini", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "payroll.dat", - "t": "source.ini string.quoted.double.ini", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.ini string.quoted.double.ini punctuation.definition.string.end.ini", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - } -] \ No newline at end of file diff --git a/extensions/java/.vscodeignore b/extensions/java/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/java/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/java/cgmanifest.json b/extensions/java/cgmanifest.json deleted file mode 100644 index 88521b95258..00000000000 --- a/extensions/java/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "atom/language-java", - "repositoryUrl": "https://github.com/atom/language-java", - "commitHash": "2bd3e55a72b08e171f811a2445343e2df9d89b71" - } - }, - "license": "MIT", - "version": "0.32.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/java/language-configuration.json b/extensions/java/language-configuration.json deleted file mode 100644 index e19d2d749f8..00000000000 --- a/extensions/java/language-configuration.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] }, - { "open": "/**", "close": " */", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["<", ">"] - ], - "folding": { - "markers": { - "start": "^\\s*//\\s*(?:(?:#?region\\b)|(?:))" - } - } -} diff --git a/extensions/java/package.json b/extensions/java/package.json deleted file mode 100644 index 96f8c8c4adf..00000000000 --- a/extensions/java/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "java", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js atom/language-java grammars/java.cson ./syntaxes/java.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "java", - "extensions": [ ".java", ".jav" ], - "aliases": [ "Java", "java" ], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "java", - "scopeName": "source.java", - "path": "./syntaxes/java.tmLanguage.json" - }], - "snippets": [{ - "language": "java", - "path": "./snippets/java.code-snippets" - }] - } -} diff --git a/extensions/java/package.nls.json b/extensions/java/package.nls.json deleted file mode 100644 index 72c9857c303..00000000000 --- a/extensions/java/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Java Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in Java files." -} \ No newline at end of file diff --git a/extensions/java/snippets/java.code-snippets b/extensions/java/snippets/java.code-snippets deleted file mode 100644 index 9a2300b18f2..00000000000 --- a/extensions/java/snippets/java.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "//#region" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "//#endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/java/syntaxes/java.tmLanguage.json b/extensions/java/syntaxes/java.tmLanguage.json deleted file mode 100644 index 91716ded5f8..00000000000 --- a/extensions/java/syntaxes/java.tmLanguage.json +++ /dev/null @@ -1,1849 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-java/blob/master/grammars/java.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-java/commit/2bd3e55a72b08e171f811a2445343e2df9d89b71", - "name": "Java", - "scopeName": "source.java", - "patterns": [ - { - "begin": "\\b(package)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.package.java" - } - }, - "end": "\\s*(;)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.java" - } - }, - "name": "meta.package.java", - "contentName": "storage.modifier.package.java", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(?<=\\.)\\s*\\.|\\.(?=\\s*;)", - "name": "invalid.illegal.character_not_allowed_here.java" - }, - { - "match": "(?", - "endCaptures": { - "0": { - "name": "punctuation.bracket.angle.java" - } - }, - "patterns": [ - { - "match": "\\b(extends|super)\\b", - "name": "storage.modifier.$1.java" - }, - { - "match": "(?>>?|~|\\^)", - "name": "keyword.operator.bitwise.java" - }, - { - "match": "((&|\\^|\\||<<|>>>?)=)", - "name": "keyword.operator.assignment.bitwise.java" - }, - { - "match": "(===?|!=|<=|>=|<>|<|>)", - "name": "keyword.operator.comparison.java" - }, - { - "match": "([+*/%-]=)", - "name": "keyword.operator.assignment.arithmetic.java" - }, - { - "match": "(=)", - "name": "keyword.operator.assignment.java" - }, - { - "match": "(\\-\\-|\\+\\+)", - "name": "keyword.operator.increment-decrement.java" - }, - { - "match": "(\\-|\\+|\\*|\\/|%)", - "name": "keyword.operator.arithmetic.java" - }, - { - "match": "(!|&&|\\|\\|)", - "name": "keyword.operator.logical.java" - }, - { - "match": "(\\||&)", - "name": "keyword.operator.bitwise.java" - }, - { - "match": "\\b(const|goto)\\b", - "name": "keyword.reserved.java" - } - ] - }, - "lambda-expression": { - "patterns": [ - { - "match": "->", - "name": "storage.type.function.arrow.java" - } - ] - }, - "member-variables": { - "begin": "(?=private|protected|public|native|synchronized|abstract|threadsafe|transient|static|final)", - "end": "(?=\\=|;)", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "include": "#variables" - }, - { - "include": "#primitive-arrays" - }, - { - "include": "#object-types" - } - ] - }, - "method-call": { - "begin": "(\\.)\\s*([A-Za-z_$][\\w$]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.separator.period.java" - }, - "2": { - "name": "entity.name.function.java" - }, - "3": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "name": "meta.method-call.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - "methods": { - "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^=/]|/(?!/))+\\()", - "end": "(})|(?=;)", - "endCaptures": { - "1": { - "name": "punctuation.section.method.end.bracket.curly.java" - } - }, - "name": "meta.method.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "begin": "(\\w+)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.java" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "name": "meta.method.identifier.java", - "patterns": [ - { - "include": "#parameters" - }, - { - "include": "#parens" - }, - { - "include": "#comments" - } - ] - }, - { - "include": "#generics" - }, - { - "begin": "(?=\\w.*\\s+\\w+\\s*\\()", - "end": "(?=\\s+\\w+\\s*\\()", - "name": "meta.method.return-type.java", - "patterns": [ - { - "include": "#all-types" - }, - { - "include": "#parens" - }, - { - "include": "#comments" - } - ] - }, - { - "include": "#throws" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.method.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.method.body.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "include": "#comments" - } - ] - }, - "module": { - "begin": "((open)\\s)?(module)\\s+(\\w+)", - "end": "}", - "beginCaptures": { - "1": { - "name": "storage.modifier.java" - }, - "3": { - "name": "storage.modifier.java" - }, - "4": { - "name": "entity.name.type.module.java" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.section.module.end.bracket.curly.java" - } - }, - "name": "meta.module.java", - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.module.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.module.body.java", - "patterns": [ - { - "match": "\\b(requires|transitive|exports|opens|to|uses|provides|with)\\b", - "name": "keyword.module.java" - } - ] - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "(?x)\n\\b(?)?(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.java" - }, - "2": { - "name": "entity.name.type.record.java" - }, - "3": { - "patterns": [ - { - "include": "#generics" - } - ] - }, - "4": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "name": "meta.record.identifier.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "begin": "(implements)\\s", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.java" - } - }, - "end": "(?=\\s*\\{)", - "name": "meta.definition.class.implemented.interfaces.java", - "patterns": [ - { - "include": "#object-types-inherited" - }, - { - "include": "#comments" - } - ] - }, - { - "include": "#record-body" - } - ] - }, - "record-body": { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.class.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "name": "meta.record.body.java", - "patterns": [ - { - "include": "#record-constructor" - }, - { - "include": "#class-body" - } - ] - }, - "record-constructor": { - "begin": "(?!new)(?=[\\w<].*\\s+)(?=([^\\(=/]|/(?!/))+(?={))", - "end": "(})|(?=;)", - "endCaptures": { - "1": { - "name": "punctuation.section.method.end.bracket.curly.java" - } - }, - "name": "meta.method.java", - "patterns": [ - { - "include": "#storage-modifiers" - }, - { - "begin": "(\\w+)", - "beginCaptures": { - "1": { - "name": "entity.name.function.java" - } - }, - "end": "(?=\\s*{)", - "name": "meta.method.identifier.java", - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.method.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.method.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - "static-initializer": { - "patterns": [ - { - "include": "#anonymous-block-and-instance-initializer" - }, - { - "match": "static", - "name": "storage.modifier.java" - } - ] - }, - "storage-modifiers": { - "match": "\\b(public|private|protected|static|final|native|synchronized|abstract|threadsafe|transient|volatile|default|strictfp|sealed|non-sealed)\\b", - "name": "storage.modifier.java" - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.java" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.java" - } - }, - "name": "string.quoted.double.java", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.java" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.java" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.java" - } - }, - "name": "string.quoted.single.java", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.java" - } - ] - } - ] - }, - "throws": { - "begin": "throws", - "beginCaptures": { - "0": { - "name": "storage.modifier.java" - } - }, - "end": "(?={|;)", - "name": "meta.throwables.java", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.delimiter.java" - }, - { - "match": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*", - "name": "storage.type.java" - } - ] - }, - "try-catch-finally": { - "patterns": [ - { - "begin": "\\btry\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.try.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.try.end.bracket.curly.java" - } - }, - "name": "meta.try.java", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.try.resources.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.try.resources.end.bracket.round.java" - } - }, - "name": "meta.try.resources.java", - "patterns": [ - { - "include": "#code" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.try.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.try.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - { - "begin": "\\b(catch)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.catch.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.catch.end.bracket.curly.java" - } - }, - "name": "meta.catch.java", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.bracket.round.java" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.java" - } - }, - "contentName": "meta.catch.parameters.java", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage-modifiers" - }, - { - "begin": "[a-zA-Z$_][\\.a-zA-Z0-9$_]*", - "beginCaptures": { - "0": { - "name": "storage.type.java" - } - }, - "end": "(\\|)|(?=\\))", - "endCaptures": { - "1": { - "name": "punctuation.catch.separator.java" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "match": "\\w+", - "captures": { - "0": { - "name": "variable.parameter.java" - } - } - } - ] - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.catch.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.catch.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - }, - { - "begin": "\\bfinally\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.finally.java" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.finally.end.bracket.curly.java" - } - }, - "name": "meta.finally.java", - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.finally.begin.bracket.curly.java" - } - }, - "end": "(?=})", - "contentName": "meta.finally.body.java", - "patterns": [ - { - "include": "#code" - } - ] - } - ] - } - ] - }, - "variables": { - "begin": "(?x)\n(?=\n \\b\n (\n (void|boolean|byte|char|short|int|float|long|double)\n |\n (?>(\\w+\\.)*[A-Z_]+\\w*) # e.g. `javax.ws.rs.Response`, or `String`\n )\n \\b\n \\s*\n (\n <[\\w<>,\\.?\\s\\[\\]]*> # e.g. `HashMap`, or `List`\n )?\n \\s*\n (\n (\\[\\])* # int[][]\n )?\n \\s+\n [A-Za-z_$][\\w$]* # At least one identifier after space\n ([\\w\\[\\],$][\\w\\[\\],\\s]*)? # possibly primitive array or additional identifiers\n \\s*(=|:|;)\n)", - "end": "(?=\\=|:|;)", - "name": "meta.definition.variable.java", - "patterns": [ - { - "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(;|:|=|,))", - "captures": { - "1": { - "name": "variable.other.definition.java" - } - } - }, - { - "include": "#all-types" - }, - { - "include": "#code" - } - ] - }, - "variables-local": { - "begin": "(?=\\b(var)\\b\\s+[A-Za-z_$][\\w$]*\\s*(=|:|;))", - "end": "(?=\\=|:|;)", - "name": "meta.definition.variable.local.java", - "patterns": [ - { - "match": "\\bvar\\b", - "name": "storage.type.local.java" - }, - { - "match": "([A-Za-z$_][\\w$]*)(?=\\s*(\\[\\])*\\s*(=|:|;))", - "captures": { - "1": { - "name": "variable.other.definition.java" - } - } - }, - { - "include": "#code" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/java/test/colorize-fixtures/basic.java b/extensions/java/test/colorize-fixtures/basic.java deleted file mode 100644 index 38b4c62b8c6..00000000000 --- a/extensions/java/test/colorize-fixtures/basic.java +++ /dev/null @@ -1,42 +0,0 @@ -package foo; - -import org.junit.Test; -import org.junit.runners.*; - -/* - * Multi line comment - */ -public class TestClass { - - private String aString; - - /** - *

Note:

Hello - * @param args - */ - public void doSomething(int a) { - double b = 0.0; - double c = 10e3; - long l = 134l; - } - - /* - * multiline comment - */ - @SuppressWarnings(value = "aString") - private long privateMethod(long b){ - for (int i = 0; i < 9; i++) { - System.out.println("Hello" + i); - } - return 10; - } - - //single line comment - @Test - public void someTests() { - int hex = 0x5; - Vector v = new Vector(); - } - - -} diff --git a/extensions/java/test/colorize-results/basic_java.json b/extensions/java/test/colorize-results/basic_java.json deleted file mode 100644 index ad37c62402e..00000000000 --- a/extensions/java/test/colorize-results/basic_java.json +++ /dev/null @@ -1,2312 +0,0 @@ -[ - { - "c": "package", - "t": "source.java meta.package.java keyword.other.package.java", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.package.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.java meta.package.java storage.modifier.package.java", - "r": { - "dark_plus": "storage.modifier.package.java: #D4D4D4", - "light_plus": "storage.modifier.package.java: #000000", - "dark_vs": "storage.modifier.package.java: #D4D4D4", - "light_vs": "storage.modifier.package.java: #000000", - "hc_black": "storage.modifier.package.java: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.java meta.package.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "import", - "t": "source.java meta.import.java keyword.other.import.java", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.import.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "org", - "t": "source.java meta.import.java storage.modifier.import.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": ".", - "t": "source.java meta.import.java storage.modifier.import.java punctuation.separator.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": "junit", - "t": "source.java meta.import.java storage.modifier.import.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": ".", - "t": "source.java meta.import.java storage.modifier.import.java punctuation.separator.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": "Test", - "t": "source.java meta.import.java storage.modifier.import.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.java meta.import.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "import", - "t": "source.java meta.import.java keyword.other.import.java", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.import.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "org", - "t": "source.java meta.import.java storage.modifier.import.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": ".", - "t": "source.java meta.import.java storage.modifier.import.java punctuation.separator.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": "junit", - "t": "source.java meta.import.java storage.modifier.import.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": ".", - "t": "source.java meta.import.java storage.modifier.import.java punctuation.separator.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": "runners", - "t": "source.java meta.import.java storage.modifier.import.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": ".", - "t": "source.java meta.import.java storage.modifier.import.java punctuation.separator.java", - "r": { - "dark_plus": "storage.modifier.import.java: #D4D4D4", - "light_plus": "storage.modifier.import.java: #000000", - "dark_vs": "storage.modifier.import.java: #D4D4D4", - "light_vs": "storage.modifier.import.java: #000000", - "hc_black": "storage.modifier.import.java: #D4D4D4" - } - }, - { - "c": "*", - "t": "source.java meta.import.java storage.modifier.import.java variable.language.wildcard.java", - "r": { - "dark_plus": "variable.language.wildcard.java: #D4D4D4", - "light_plus": "variable.language.wildcard.java: #000000", - "dark_vs": "variable.language.wildcard.java: #D4D4D4", - "light_vs": "variable.language.wildcard.java: #000000", - "hc_black": "variable.language.wildcard.java: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.java meta.import.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.java comment.block.java punctuation.definition.comment.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * Multi line comment", - "t": "source.java comment.block.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.java comment.block.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.java comment.block.java punctuation.definition.comment.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "public", - "t": "source.java meta.class.java storage.modifier.java", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.class.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.java meta.class.java meta.class.identifier.java storage.modifier.java", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.identifier.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "TestClass", - "t": "source.java meta.class.java meta.class.identifier.java entity.name.type.class.java", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.java meta.class.java punctuation.section.class.begin.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.java meta.class.java meta.class.body.java storage.modifier.java", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "String", - "t": "source.java meta.class.java meta.class.body.java meta.definition.variable.java storage.type.java", - "r": { - "dark_plus": "storage.type.java: #4EC9B0", - "light_plus": "storage.type.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "aString", - "t": "source.java meta.class.java meta.class.body.java meta.definition.variable.java variable.other.definition.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "/**", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java punctuation.definition.comment.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t *

Note:

Hello", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t * ", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@param", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java keyword.other.documentation.javadoc.java", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "args", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java variable.parameter.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\t ", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.java meta.class.java meta.class.body.java comment.block.javadoc.java punctuation.definition.comment.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.java meta.class.java meta.class.body.java meta.method.java storage.modifier.java", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.return-type.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "doSomething", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java punctuation.definition.parameters.begin.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java variable.parameter.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java punctuation.definition.parameters.end.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.java meta.class.java meta.class.body.java meta.method.java punctuation.section.method.begin.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "double", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java variable.other.definition.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.assignment.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0.0", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java constant.numeric.decimal.java", - "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" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "double", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "c", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java variable.other.definition.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.assignment.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10e3", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java constant.numeric.decimal.java", - "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" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "long", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "l", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java variable.other.definition.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.assignment.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "134l", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java constant.numeric.decimal.java", - "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" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.java meta.class.java meta.class.body.java meta.method.java punctuation.section.method.end.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.java meta.class.java meta.class.body.java comment.block.java punctuation.definition.comment.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t * multiline comment", - "t": "source.java meta.class.java meta.class.body.java comment.block.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t ", - "t": "source.java meta.class.java meta.class.body.java comment.block.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.java meta.class.java meta.class.body.java comment.block.java punctuation.definition.comment.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java punctuation.definition.annotation.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "SuppressWarnings", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java storage.type.annotation.java", - "r": { - "dark_plus": "storage.type.annotation.java: #4EC9B0", - "light_plus": "storage.type.annotation.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.annotation.java: #4EC9B0" - } - }, - { - "c": "(", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java punctuation.definition.annotation-arguments.begin.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "value", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java constant.other.key.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java keyword.operator.assignment.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java string.quoted.double.java punctuation.definition.string.begin.java", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "aString", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java string.quoted.double.java", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java string.quoted.double.java punctuation.definition.string.end.java", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java punctuation.definition.annotation-arguments.end.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.java meta.class.java meta.class.body.java meta.method.java storage.modifier.java", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "long", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.return-type.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "privateMethod", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java punctuation.definition.parameters.begin.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "long", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java variable.parameter.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java punctuation.definition.parameters.end.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.java meta.class.java meta.class.body.java meta.method.java punctuation.section.method.begin.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.control.java", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java variable.other.definition.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.assignment.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java constant.numeric.decimal.java", - "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" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " i ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.comparison.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "9", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java constant.numeric.decimal.java", - "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" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " i", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "++", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.increment-decrement.java", - "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" - } - }, - { - "c": ")", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.section.block.begin.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "System", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java variable.other.object.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.separator.period.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "out", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java variable.other.object.property.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java punctuation.separator.period.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java punctuation.definition.parameters.begin.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java string.quoted.double.java punctuation.definition.string.begin.java", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Hello", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java string.quoted.double.java", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java string.quoted.double.java punctuation.definition.string.end.java", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java keyword.operator.arithmetic.java", - "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" - } - }, - { - "c": " i", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.method-call.java punctuation.definition.parameters.end.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.section.block.end.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.control.java", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java constant.numeric.decimal.java", - "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" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.java meta.class.java meta.class.body.java meta.method.java punctuation.section.method.end.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java punctuation.whitespace.comment.leading.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.java meta.class.java meta.class.body.java comment.line.double-slash.java punctuation.definition.comment.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "single line comment", - "t": "source.java meta.class.java meta.class.body.java comment.line.double-slash.java", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java punctuation.definition.annotation.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Test", - "t": "source.java meta.class.java meta.class.body.java meta.declaration.annotation.java storage.type.annotation.java", - "r": { - "dark_plus": "storage.type.annotation.java: #4EC9B0", - "light_plus": "storage.type.annotation.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.annotation.java: #4EC9B0" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.java meta.class.java meta.class.body.java meta.method.java storage.modifier.java", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.return-type.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "someTests", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java punctuation.definition.parameters.begin.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.identifier.java punctuation.definition.parameters.end.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.java meta.class.java meta.class.body.java meta.method.java punctuation.section.method.begin.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java storage.type.primitive.java", - "r": { - "dark_plus": "storage.type.primitive.java: #4EC9B0", - "light_plus": "storage.type.primitive.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.primitive.java: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "hex", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java variable.other.definition.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.assignment.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0x5", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java constant.numeric.hex.java", - "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" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Vector", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java storage.type.java", - "r": { - "dark_plus": "storage.type.java: #4EC9B0", - "light_plus": "storage.type.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.java: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java punctuation.bracket.angle.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Number", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java storage.type.generic.java", - "r": { - "dark_plus": "storage.type.generic.java: #4EC9B0", - "light_plus": "storage.type.generic.java: #267F99", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type.generic.java: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java punctuation.bracket.angle.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "v", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java variable.other.definition.java", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.definition.variable.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.operator.assignment.java", - "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" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java keyword.control.new.java", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Vector", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.function-call.java entity.name.function.java", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.function-call.java punctuation.definition.parameters.begin.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java meta.function-call.java punctuation.definition.parameters.end.bracket.round.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java punctuation.terminator.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.java meta.class.java meta.class.body.java meta.method.java meta.method.body.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.java meta.class.java meta.class.body.java meta.method.java punctuation.section.method.end.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.java meta.class.java punctuation.section.class.end.bracket.curly.java", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/javascript/.vscodeignore b/extensions/javascript/.vscodeignore deleted file mode 100644 index b93dc756653..00000000000 --- a/extensions/javascript/.vscodeignore +++ /dev/null @@ -1,4 +0,0 @@ -test/** -src/**/*.ts -tsconfig.json -cgmanifest.json diff --git a/extensions/javascript/cgmanifest.json b/extensions/javascript/cgmanifest.json deleted file mode 100644 index 2d5d904f01c..00000000000 --- a/extensions/javascript/cgmanifest.json +++ /dev/null @@ -1,45 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "microsoft/TypeScript-TmLanguage", - "repositoryUrl": "https://github.com/microsoft/TypeScript-TmLanguage", - "commitHash": "3133e3d914db9a2bb8812119f9273727a305f16b" - } - }, - "license": "MIT", - "version": "0.0.1", - "description": "The file syntaxes/JavaScript.tmLanguage.json was derived from TypeScriptReact.tmLanguage in https://github.com/microsoft/TypeScript-TmLanguage." - }, - { - "component": { - "type": "git", - "git": { - "name": "textmate/javascript.tmbundle", - "repositoryUrl": "https://github.com/textmate/javascript.tmbundle", - "commitHash": "fccf0af0c95430a42e1bf98f0c7a4723a53283e7" - } - }, - "licenseDetail": [ - "Copyright (c) textmate-javascript.tmbundle project authors", - "", - "If not otherwise specified (see below), files in this repository fall under the following license:", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information,", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ], - "license": "TextMate Bundle License", - "version": "0.0.0" - } - ], - "version": 1 -} diff --git a/extensions/javascript/javascript-language-configuration.json b/extensions/javascript/javascript-language-configuration.json deleted file mode 100644 index b41053843cf..00000000000 --- a/extensions/javascript/javascript-language-configuration.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}" }, - { "open": "[", "close": "]" }, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "`", "close": "`", "notIn": ["string", "comment"] }, - { "open": "/**", "close": " */", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["'", "'"], - ["\"", "\""], - ["`", "`"] - ], - "autoCloseBefore": ";:.,=}])>` \n\t", - "folding": { - "markers": { - "start": "^\\s*//\\s*#?region\\b", - "end": "^\\s*//\\s*#?endregion\\b" - } - } -} \ No newline at end of file diff --git a/extensions/javascript/package.json b/extensions/javascript/package.json deleted file mode 100644 index d63bebded16..00000000000 --- a/extensions/javascript/package.json +++ /dev/null @@ -1,132 +0,0 @@ -{ - "name": "javascript", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "contributes": { - "languages": [ - { - "id": "javascriptreact", - "aliases": [ - "JavaScript React", - "jsx" - ], - "extensions": [ - ".jsx" - ], - "configuration": "./javascript-language-configuration.json" - }, - { - "id": "javascript", - "aliases": [ - "JavaScript", - "javascript", - "js" - ], - "extensions": [ - ".js", - ".es6", - ".mjs", - ".cjs", - ".pac" - ], - "filenames": [ - "jakefile" - ], - "firstLine": "^#!.*\\bnode", - "mimetypes": [ - "text/javascript" - ], - "configuration": "./javascript-language-configuration.json" - }, - { - "id": "jsx-tags", - "aliases": [], - "configuration": "./tags-language-configuration.json" - } - ], - "grammars": [ - { - "language": "javascriptreact", - "scopeName": "source.js.jsx", - "path": "./syntaxes/JavaScriptReact.tmLanguage.json", - "embeddedLanguages": { - "meta.tag.js": "jsx-tags", - "meta.tag.without-attributes.js": "jsx-tags", - "meta.tag.attributes.js.jsx": "javascriptreact", - "meta.embedded.expression.js": "javascriptreact" - }, - "tokenTypes": { - "entity.name.type.instance.jsdoc": "other", - "entity.name.function.tagged-template": "other", - "meta.import string.quoted": "other", - "variable.other.jsdoc": "other" - } - }, - { - "language": "javascript", - "scopeName": "source.js", - "path": "./syntaxes/JavaScript.tmLanguage.json", - "embeddedLanguages": { - "meta.tag.js": "jsx-tags", - "meta.tag.without-attributes.js": "jsx-tags", - "meta.tag.attributes.js": "javascript", - "meta.embedded.expression.js": "javascript" - }, - "tokenTypes": { - "entity.name.type.instance.jsdoc": "other", - "entity.name.function.tagged-template": "other", - "meta.import string.quoted": "other", - "variable.other.jsdoc": "other" - } - }, - { - "scopeName": "source.js.regexp", - "path": "./syntaxes/Regular Expressions (JavaScript).tmLanguage" - } - ], - "semanticTokenScopes": [ - { - "language": "javascript", - "scopes": { - "property": ["variable.other.property.js"], - "property.readonly": ["variable.other.constant.property.js"], - "variable": ["variable.other.readwrite.js"], - "variable.readonly": ["variable.other.constant.object.js"], - "function": ["entity.name.function.js"], - "namespace": ["entity.name.type.module.js"], - "variable.defaultLibrary": ["support.variable.js"], - "function.defaultLibrary": ["support.function.js"] - } - }, - { - "language": "javascriptreact", - "scopes": { - "property": ["variable.other.property.jsx"], - "property.readonly": ["variable.other.constant.property.jsx"], - "variable": ["variable.other.readwrite.jsx"], - "variable.readonly": ["variable.other.constant.object.jsx"], - "function": ["entity.name.function.jsx"], - "namespace": ["entity.name.type.module.jsx"], - "variable.defaultLibrary": ["support.variable.js"], - "function.defaultLibrary": ["support.function.js"] - } - } - ], - "snippets": [ - { - "language": "javascript", - "path": "./snippets/javascript.code-snippets" - }, - { - "language": "javascriptreact", - "path": "./snippets/javascript.code-snippets" - } - ] - } -} diff --git a/extensions/javascript/package.nls.json b/extensions/javascript/package.nls.json deleted file mode 100644 index bb1285e1ad5..00000000000 --- a/extensions/javascript/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "JavaScript Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in JavaScript files." -} \ No newline at end of file diff --git a/extensions/javascript/snippets/javascript.code-snippets b/extensions/javascript/snippets/javascript.code-snippets deleted file mode 100644 index a48a64c2813..00000000000 --- a/extensions/javascript/snippets/javascript.code-snippets +++ /dev/null @@ -1,194 +0,0 @@ -{ - "define module": { - "prefix": "define", - "body": [ - "define([", - "\t'require',", - "\t'${1:dependency}'", - "], function(require, ${2:factory}) {", - "\t'use strict';", - "\t$0", - "});" - ], - "description": "define module" - }, - "For Loop": { - "prefix": "for", - "body": [ - "for (let ${1:index} = 0; ${1:index} < ${2:array}.length; ${1:index}++) {", - "\tconst ${3:element} = ${2:array}[${1:index}];", - "\t$0", - "}" - ], - "description": "For Loop" - }, - "For-Each Loop": { - "prefix": "foreach", - "body": [ - "${1:array}.forEach(${2:element} => {", - "\t$0", - "});" - ], - "description": "For-Each Loop" - }, - "For-In Loop": { - "prefix": "forin", - "body": [ - "for (const ${1:key} in ${2:object}) {", - "\tif (Object.hasOwnProperty.call(${2:object}, ${1:key})) {", - "\t\tconst ${3:element} = ${2:object}[${1:key}];", - "\t\t$0", - "\t}", - "}" - ], - "description": "For-In Loop" - }, - "For-Of Loop": { - "prefix": "forof", - "body": [ - "for (const ${1:iterator} of ${2:object}) {", - "\t$0", - "}" - ], - "description": "For-Of Loop" - }, - "Function Statement": { - "prefix": "function", - "body": [ - "function ${1:name}(${2:params}) {", - "\t$0", - "}" - ], - "description": "Function Statement" - }, - "If Statement": { - "prefix": "if", - "body": [ - "if (${1:condition}) {", - "\t$0", - "}" - ], - "description": "If Statement" - }, - "If-Else Statement": { - "prefix": "ifelse", - "body": [ - "if (${1:condition}) {", - "\t$0", - "} else {", - "\t", - "}" - ], - "description": "If-Else Statement" - }, - "New Statement": { - "prefix": "new", - "body": [ - "const ${1:name} = new ${2:type}(${3:arguments});$0" - ], - "description": "New Statement" - }, - "Switch Statement": { - "prefix": "switch", - "body": [ - "switch (${1:key}) {", - "\tcase ${2:value}:", - "\t\t$0", - "\t\tbreak;", - "", - "\tdefault:", - "\t\tbreak;", - "}" - ], - "description": "Switch Statement" - }, - "While Statement": { - "prefix": "while", - "body": [ - "while (${1:condition}) {", - "\t$0", - "}" - ], - "description": "While Statement" - }, - "Do-While Statement": { - "prefix": "dowhile", - "body": [ - "do {", - "\t$0", - "} while (${1:condition});" - ], - "description": "Do-While Statement" - }, - "Try-Catch Statement": { - "prefix": "trycatch", - "body": [ - "try {", - "\t$0", - "} catch (${1:error}) {", - "\t", - "}" - ], - "description": "Try-Catch Statement" - }, - "Set Timeout Function": { - "prefix": "settimeout", - "body": [ - "setTimeout(() => {", - "\t$0", - "}, ${1:timeout});" - ], - "description": "Set Timeout Function" - }, - "Set Interval Function": { - "prefix": "setinterval", - "body": [ - "setInterval(() => {", - "\t$0", - "}, ${1:interval});" - ], - "description": "Set Interval Function" - }, - "Import external module.": { - "prefix": "import statement", - "body": [ - "import { $0 } from \"${1:module}\";" - ], - "description": "Import external module." - }, - "Region Start": { - "prefix": "#region", - "body": [ - "//#region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "//#endregion" - ], - "description": "Folding Region End" - }, - "Log to the console": { - "prefix": "log", - "body": [ - "console.log($1);" - ], - "description": "Log to the console" - }, - "Log warning to console": { - "prefix": "warn", - "body": [ - "console.warn($1);" - ], - "description": "Log warning to the console" - }, - "Log error to console": { - "prefix": "error", - "body": [ - "console.error($1);" - ], - "description": "Log error to the console" - } -} diff --git a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json b/extensions/javascript/syntaxes/JavaScript.tmLanguage.json deleted file mode 100644 index a6cf72881fe..00000000000 --- a/extensions/javascript/syntaxes/JavaScript.tmLanguage.json +++ /dev/null @@ -1,5856 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/398985941eb36cd270054a6e668d03fb9ef92e77", - "name": "JavaScript (with React support)", - "scopeName": "source.js", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.js", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.js" - } - } - }, - "statements": { - "patterns": [ - { - "include": "#declaration" - }, - { - "include": "#control-statement" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#label" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "declaration": { - "patterns": [ - { - "include": "#decorator" - }, - { - "include": "#var-expr" - }, - { - "include": "#function-declaration" - }, - { - "include": "#class-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#namespace-declaration" - }, - { - "include": "#type-alias-declaration" - }, - { - "include": "#import-equals-declaration" - }, - { - "include": "#import-declaration" - }, - { - "include": "#export-declaration" - }, - { - "name": "storage.modifier.js", - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js entity.name.function.js" - }, - "2": { - "name": "keyword.operator.definiteassignment.js" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js variable.other.constant.js entity.name.function.js" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "entity.name.function.js variable.language.this.js" - }, - "4": { - "name": "entity.name.function.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "meta.definition.property.js entity.name.function.js" - }, - "2": { - "name": "keyword.operator.optional.js" - }, - "3": { - "name": "keyword.operator.definiteassignment.js" - } - } - }, - { - "name": "meta.definition.property.js variable.object.property.js", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.js", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.js", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js" - } - }, - "end": "(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.async.js" - }, - "4": { - "name": "keyword.operator.new.js" - }, - "5": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.js", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "storage.modifier.js" - }, - "3": { - "name": "storage.modifier.async.js" - }, - "4": { - "name": "storage.type.property.js" - }, - "5": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.js", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "storage.type.property.js" - }, - "3": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "storage.type.property.js" - }, - "3": { - "name": "keyword.generator.asterisk.js" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?)", - "captures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "variable.parameter.js" - } - } - }, - { - "name": "meta.arrow.js", - "begin": "(?x) (?:\n (? is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.js", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js" - } - }, - "end": "((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.js", - "begin": "(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.js", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.js meta.object-literal.key.js", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.js meta.object-literal.key.js", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.js meta.object-literal.key.js", - "begin": "(?x)(?=(\\b(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.js" - }, - "1": { - "name": "entity.name.function.js" - } - } - }, - { - "name": "meta.object.member.js", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.js" - } - } - }, - { - "name": "meta.object.member.js", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.js" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.js" - } - } - }, - { - "name": "meta.object.member.js", - "match": "(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - }, - "2": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?<=\\>)", - "patterns": [ - { - "include": "#type-parameters" - } - ] - }, - { - "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.js" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.js", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.js", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.js", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.js punctuation.accessor.optional.js", - "match": "\\?\\." - }, - { - "name": "meta.function-call.js keyword.operator.definiteassignment.js", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.js", - "match": "(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - "paren-expression-possibly-arrow-with-typeparameters": { - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "entity.name.function.js variable.language.this.js" - }, - "4": { - "name": "entity.name.function.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "match": "(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.js", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.js", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.js", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.logical.js" - }, - "2": { - "name": "keyword.operator.arithmetic.js" - } - } - }, - { - "name": "keyword.operator.logical.js", - "match": "\\!|&&|\\|\\||\\?\\?" - }, - { - "name": "keyword.operator.bitwise.js", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.js", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.js", - "match": "--" - }, - { - "name": "keyword.operator.increment.js", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.js", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(/)(?![/*]))", - "end": "(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)", - "endCaptures": { - "1": { - "name": "keyword.operator.arithmetic.js" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.arithmetic.js" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?]|$|;|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#numeric-literal" - }, - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#undefined-literal" - }, - { - "include": "#numericConstant-literal" - }, - { - "include": "#array-literal" - }, - { - "include": "#this-literal" - }, - { - "include": "#super-literal" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.js", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.js" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.js" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.js", - "match": "\\b(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "support.variable.property.js" - }, - "4": { - "name": "support.constant.js" - } - } - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "entity.name.function.js" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "variable.other.constant.property.js" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "variable.other.property.js" - } - } - }, - { - "name": "variable.other.constant.js", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.js", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - }, - "3": { - "name": "variable.other.constant.object.property.js" - }, - "4": { - "name": "variable.other.object.property.js" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.js" - }, - "2": { - "name": "variable.other.object.js" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.js", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?])|(?=^\\s*$)|((?<=\\S)(?=\\s*$))|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.js", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js" - } - }, - "end": "(?|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "possibly-arrow-return-type": { - "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", - "beginCaptures": { - "1": { - "name": "meta.arrow.js meta.return.type.arrow.js keyword.operator.type.annotation.js" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.js meta.return.type.arrow.js", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "arrow-return-type-body": { - "patterns": [ - { - "begin": "(?<=[:])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.js", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.js" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.js" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.js", - "match": "(?)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.js", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.js" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.js" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", - "captures": { - "1": { - "name": "storage.modifier.js" - }, - "2": { - "name": "keyword.operator.rest.js" - }, - "3": { - "name": "entity.name.function.js variable.language.this.js" - }, - "4": { - "name": "entity.name.function.js" - }, - "5": { - "name": "keyword.operator.optional.js" - } - } - }, - { - "match": "(?x)(?:(?)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.js", - "begin": "(?)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.js", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.js" - } - }, - "end": "(?)(?:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.js", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js" - } - }, - "end": "(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - } - ] - }, - "type-function-return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<==>)(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-operators": { - "patterns": [ - { - "include": "#typeof-operator" - }, - { - "begin": "([&|])(?=\\s*\\{)", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.js" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "begin": "[&|]", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.js" - } - }, - "end": "(?=\\S)" - }, - { - "name": "keyword.operator.expression.keyof.js", - "match": "(?)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js punctuation.definition.typeparameters.end.js" - } - }, - "contentName": "meta.type.parameters.js", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.js" - }, - "2": { - "name": "meta.type.parameters.js punctuation.definition.typeparameters.begin.js" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js punctuation.definition.typeparameters.end.js" - } - }, - "contentName": "meta.type.parameters.js", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.js" - }, - "2": { - "name": "punctuation.accessor.js" - }, - "3": { - "name": "punctuation.accessor.optional.js" - } - } - }, - { - "name": "entity.name.type.js", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.js", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.js", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.js" - }, - "2": { - "name": "punctuation.accessor.optional.js" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.js", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "invalid.illegal.newline.js" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.js", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "invalid.illegal.newline.js" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.js", - "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.js", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js" - }, - "2": { - "name": "punctuation.definition.string.template.begin.js" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.js" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "name": "string.template.js", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.js", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "name": "string.template.js", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.js", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.js" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.js", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js" - }, - "2": { - "name": "punctuation.definition.string.template.begin.js" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.js" - } - }, - "patterns": [ - { - "include": "#template-type-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-type-substitution-element": { - "name": "meta.template.expression.js", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.js" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.js", - "begin": "(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.js" - } - }, - "end": "(/)([gimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js" - }, - "2": { - "name": "keyword.other.js" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.js", - "begin": "((?", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.regexp", - "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - }, - "1": { - "name": "punctuation.definition.group.no-capture.regexp" - }, - "2": { - "name": "variable.other.regexp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.regexp", - "begin": "(\\[)(\\^)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.regexp", - "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", - "captures": { - "1": { - "name": "constant.character.numeric.regexp" - }, - "2": { - "name": "constant.character.control.regexp" - }, - "3": { - "name": "constant.character.escape.backslash.regexp" - }, - "4": { - "name": "constant.character.numeric.regexp" - }, - "5": { - "name": "constant.character.control.regexp" - }, - "6": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.js", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.js", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.js" - }, - "2": { - "name": "storage.type.internaldeclaration.js" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.js" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.js" - } - } - }, - { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.js" - }, - "2": { - "name": "comment.line.double-slash.js" - }, - "3": { - "name": "punctuation.definition.comment.js" - }, - "4": { - "name": "storage.type.internaldeclaration.js" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.js" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.js" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.js" - }, - "2": { - "name": "comment.line.double-slash.js" - }, - "3": { - "name": "punctuation.definition.comment.js" - }, - "4": { - "name": "storage.type.internaldeclaration.js" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.js" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.js" - }, - "directives": { - "name": "comment.line.triple-slash.directive.js", - "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.js" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "meta.tag.js", - "begin": "(<)(reference|amd-dependency|amd-module)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.directive.js" - }, - "2": { - "name": "entity.name.tag.directive.js" - } - }, - "end": "/>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.directive.js" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.js", - "match": "path|types|no-default-lib|lib|name" - }, - { - "name": "keyword.operator.assignment.js", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # ", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "keyword.operator.control.jsdoc" - }, - "5": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "begin": "\\G(<)caption(>)", - "beginCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - }, - "end": "()|(?=\\*/)", - "endCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.js" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "((@)typedef)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" - }, - "2": { - "name": "keyword.operator.assignment.jsdoc" - }, - "3": { - "name": "source.embedded.js" - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" - }, - "5": { - "name": "invalid.illegal.syntax.jsdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - }, - "4": { - "name": "punctuation.definition.string.begin.jsdoc" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.jsdoc", - "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - }, - "2": { - "name": "storage.type.class.jsdoc" - }, - "3": { - "name": "punctuation.definition.inline.tag.jsdoc" - } - }, - "end": "}|(?=\\*/)", - "endCaptures": { - "0": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - } - }, - "end": "((}))\\s*|(?=\\*/)", - "endCaptures": { - "1": { - "name": "entity.name.type.instance.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "jsx": { - "patterns": [ - { - "include": "#jsx-tag-without-attributes-in-expression" - }, - { - "include": "#jsx-tag-in-expression" - } - ] - }, - "jsx-tag-without-attributes-in-expression": { - "begin": "(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - } - ] - }, - "jsx-tag-without-attributes": { - "name": "meta.tag.without-attributes.js", - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)", - "end": "()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js" - }, - "2": { - "name": "entity.name.tag.namespace.js" - }, - "3": { - "name": "punctuation.separator.namespace.js" - }, - "4": { - "name": "entity.name.tag.js" - }, - "5": { - "name": "support.class.component.js" - }, - "6": { - "name": "punctuation.definition.tag.end.js" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js" - }, - "2": { - "name": "entity.name.tag.namespace.js" - }, - "3": { - "name": "punctuation.separator.namespace.js" - }, - "4": { - "name": "entity.name.tag.js" - }, - "5": { - "name": "support.class.component.js" - }, - "6": { - "name": "punctuation.definition.tag.end.js" - } - }, - "contentName": "meta.jsx.children.js", - "patterns": [ - { - "include": "#jsx-children" - } - ] - }, - "jsx-tag-in-expression": { - "begin": "(?x)\n (?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "patterns": [ - { - "include": "#jsx-tag" - } - ] - }, - "jsx-tag": { - "name": "meta.tag.js", - "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(/>)|(?:())", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js" - }, - "2": { - "name": "punctuation.definition.tag.begin.js" - }, - "3": { - "name": "entity.name.tag.namespace.js" - }, - "4": { - "name": "punctuation.separator.namespace.js" - }, - "5": { - "name": "entity.name.tag.js" - }, - "6": { - "name": "support.class.component.js" - }, - "7": { - "name": "punctuation.definition.tag.end.js" - } - }, - "patterns": [ - { - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js" - }, - "2": { - "name": "entity.name.tag.namespace.js" - }, - "3": { - "name": "punctuation.separator.namespace.js" - }, - "4": { - "name": "entity.name.tag.js" - }, - "5": { - "name": "support.class.component.js" - } - }, - "end": "(?=[/]?>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-arguments" - }, - { - "include": "#jsx-tag-attributes" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js" - } - }, - "end": "(?=)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#jsx-tag-attribute-name" - }, - { - "include": "#jsx-tag-attribute-assignment" - }, - { - "include": "#jsx-string-double-quoted" - }, - { - "include": "#jsx-string-single-quoted" - }, - { - "include": "#jsx-evaluated-code" - }, - { - "include": "#jsx-tag-attributes-illegal" - } - ] - }, - "jsx-tag-attribute-name": { - "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.js" - }, - "2": { - "name": "punctuation.separator.namespace.js" - }, - "3": { - "name": "entity.other.attribute-name.js" - } - } - }, - "jsx-tag-attribute-assignment": { - "name": "keyword.operator.assignment.js", - "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" - }, - "jsx-string-double-quoted": { - "name": "string.quoted.double.js", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-string-single-quoted": { - "name": "string.quoted.single.js", - "begin": "'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-tag-attributes-illegal": { - "name": "invalid.illegal.attribute.js", - "match": "\\S+" - } - } -} \ No newline at end of file diff --git a/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json b/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json deleted file mode 100644 index c5e9579293b..00000000000 --- a/extensions/javascript/syntaxes/JavaScriptReact.tmLanguage.json +++ /dev/null @@ -1,5856 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/398985941eb36cd270054a6e668d03fb9ef92e77", - "name": "JavaScript (with React support)", - "scopeName": "source.js.jsx", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.js.jsx", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.js.jsx" - } - } - }, - "statements": { - "patterns": [ - { - "include": "#declaration" - }, - { - "include": "#control-statement" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#label" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "declaration": { - "patterns": [ - { - "include": "#decorator" - }, - { - "include": "#var-expr" - }, - { - "include": "#function-declaration" - }, - { - "include": "#class-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#namespace-declaration" - }, - { - "include": "#type-alias-declaration" - }, - { - "include": "#import-equals-declaration" - }, - { - "include": "#import-declaration" - }, - { - "include": "#export-declaration" - }, - { - "name": "storage.modifier.js.jsx", - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js.jsx entity.name.function.js.jsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.js.jsx" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.js.jsx variable.other.constant.js.jsx entity.name.function.js.jsx" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "keyword.operator.rest.js.jsx" - }, - "3": { - "name": "entity.name.function.js.jsx variable.language.this.js.jsx" - }, - "4": { - "name": "entity.name.function.js.jsx" - }, - "5": { - "name": "keyword.operator.optional.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "meta.definition.property.js.jsx entity.name.function.js.jsx" - }, - "2": { - "name": "keyword.operator.optional.js.jsx" - }, - "3": { - "name": "keyword.operator.definiteassignment.js.jsx" - } - } - }, - { - "name": "meta.definition.property.js.jsx variable.object.property.js.jsx", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.js.jsx", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.js.jsx", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.js.jsx" - } - }, - "end": "(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.async.js.jsx" - }, - "4": { - "name": "keyword.operator.new.js.jsx" - }, - "5": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.js.jsx", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "storage.modifier.js.jsx" - }, - "3": { - "name": "storage.modifier.async.js.jsx" - }, - "4": { - "name": "storage.type.property.js.jsx" - }, - "5": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.js.jsx", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "storage.type.property.js.jsx" - }, - "3": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "storage.type.property.js.jsx" - }, - "3": { - "name": "keyword.generator.asterisk.js.jsx" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?)", - "captures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "variable.parameter.js.jsx" - } - } - }, - { - "name": "meta.arrow.js.jsx", - "begin": "(?x) (?:\n (? is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.js.jsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js.jsx" - } - }, - "end": "((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.js.jsx", - "begin": "(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.js.jsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.js.jsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.js.jsx meta.object-literal.key.js.jsx", - "begin": "(?x)(?=(\\b(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.js.jsx" - }, - "1": { - "name": "entity.name.function.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.js.jsx" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.js.jsx" - } - } - }, - { - "name": "meta.object.member.js.jsx", - "match": "(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - }, - "2": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\>)", - "patterns": [ - { - "include": "#type-parameters" - } - ] - }, - { - "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.js.jsx" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.js.jsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.js.jsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.js.jsx", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.js.jsx punctuation.accessor.optional.js.jsx", - "match": "\\?\\." - }, - { - "name": "meta.function-call.js.jsx keyword.operator.definiteassignment.js.jsx", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.js.jsx", - "match": "(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.js.jsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - "paren-expression-possibly-arrow-with-typeparameters": { - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "keyword.operator.rest.js.jsx" - }, - "3": { - "name": "entity.name.function.js.jsx variable.language.this.js.jsx" - }, - "4": { - "name": "entity.name.function.js.jsx" - }, - "5": { - "name": "keyword.operator.optional.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.js.jsx", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.js.jsx", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.js.jsx", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.logical.js.jsx" - }, - "2": { - "name": "keyword.operator.arithmetic.js.jsx" - } - } - }, - { - "name": "keyword.operator.logical.js.jsx", - "match": "\\!|&&|\\|\\||\\?\\?" - }, - { - "name": "keyword.operator.bitwise.js.jsx", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.js.jsx", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.js.jsx", - "match": "--" - }, - { - "name": "keyword.operator.increment.js.jsx", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.js.jsx", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(/)(?![/*]))", - "end": "(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)", - "endCaptures": { - "1": { - "name": "keyword.operator.arithmetic.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.arithmetic.js.jsx" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?]|$|;|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#numeric-literal" - }, - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#undefined-literal" - }, - { - "include": "#numericConstant-literal" - }, - { - "include": "#array-literal" - }, - { - "include": "#this-literal" - }, - { - "include": "#super-literal" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.js.jsx", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.js.jsx" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.js.jsx", - "match": "\\b(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "support.variable.property.js.jsx" - }, - "4": { - "name": "support.constant.js.jsx" - } - } - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "entity.name.function.js.jsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "variable.other.constant.property.js.jsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "variable.other.property.js.jsx" - } - } - }, - { - "name": "variable.other.constant.js.jsx", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.js.jsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - }, - "3": { - "name": "variable.other.constant.object.property.js.jsx" - }, - "4": { - "name": "variable.other.object.property.js.jsx" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.js.jsx" - }, - "2": { - "name": "variable.other.object.js.jsx" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js.jsx", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.js.jsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?])|(?=^\\s*$)|((?<=\\S)(?=\\s*$))|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.js.jsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.js.jsx", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "possibly-arrow-return-type": { - "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", - "beginCaptures": { - "1": { - "name": "meta.arrow.js.jsx meta.return.type.arrow.js.jsx keyword.operator.type.annotation.js.jsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.js.jsx meta.return.type.arrow.js.jsx", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "arrow-return-type-body": { - "patterns": [ - { - "begin": "(?<=[:])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.js.jsx", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.js.jsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.js.jsx", - "match": "(?)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.js.jsx", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.js.jsx" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", - "captures": { - "1": { - "name": "storage.modifier.js.jsx" - }, - "2": { - "name": "keyword.operator.rest.js.jsx" - }, - "3": { - "name": "entity.name.function.js.jsx variable.language.this.js.jsx" - }, - "4": { - "name": "entity.name.function.js.jsx" - }, - "5": { - "name": "keyword.operator.optional.js.jsx" - } - } - }, - { - "match": "(?x)(?:(?)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.js.jsx", - "begin": "(?)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.js.jsx", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.js.jsx" - } - }, - "end": "(?)(?:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.js.jsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.js.jsx" - } - }, - "end": "(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - } - ] - }, - "type-function-return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<==>)(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-operators": { - "patterns": [ - { - "include": "#typeof-operator" - }, - { - "begin": "([&|])(?=\\s*\\{)", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.js.jsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "begin": "[&|]", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.js.jsx" - } - }, - "end": "(?=\\S)" - }, - { - "name": "keyword.operator.expression.keyof.js.jsx", - "match": "(?)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" - } - }, - "contentName": "meta.type.parameters.js.jsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.js.jsx" - }, - "2": { - "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.begin.js.jsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.js.jsx punctuation.definition.typeparameters.end.js.jsx" - } - }, - "contentName": "meta.type.parameters.js.jsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.js.jsx" - }, - "2": { - "name": "punctuation.accessor.js.jsx" - }, - "3": { - "name": "punctuation.accessor.optional.js.jsx" - } - } - }, - { - "name": "entity.name.type.js.jsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.js.jsx", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.js.jsx", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.js.jsx" - }, - "2": { - "name": "punctuation.accessor.optional.js.jsx" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.js.jsx", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js.jsx" - }, - "2": { - "name": "invalid.illegal.newline.js.jsx" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.js.jsx", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js.jsx" - }, - "2": { - "name": "invalid.illegal.newline.js.jsx" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.js.jsx", - "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.js.jsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js.jsx" - }, - "2": { - "name": "punctuation.definition.string.template.begin.js.jsx" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "name": "string.template.js.jsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.js.jsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "name": "string.template.js.jsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js.jsx" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.js.jsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.js.jsx" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.js.jsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.js.jsx" - }, - "2": { - "name": "punctuation.definition.string.template.begin.js.jsx" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#template-type-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-type-substitution-element": { - "name": "meta.template.expression.js.jsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.js.jsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.js.jsx" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.js.jsx", - "begin": "(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "end": "(/)([gimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.js.jsx" - }, - "2": { - "name": "keyword.other.js.jsx" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.js.jsx", - "begin": "((?", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.regexp", - "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - }, - "1": { - "name": "punctuation.definition.group.no-capture.regexp" - }, - "2": { - "name": "variable.other.regexp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.regexp", - "begin": "(\\[)(\\^)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.regexp", - "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", - "captures": { - "1": { - "name": "constant.character.numeric.regexp" - }, - "2": { - "name": "constant.character.control.regexp" - }, - "3": { - "name": "constant.character.escape.backslash.regexp" - }, - "4": { - "name": "constant.character.numeric.regexp" - }, - "5": { - "name": "constant.character.control.regexp" - }, - "6": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.js.jsx", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.js.jsx" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.js.jsx" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.js.jsx", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.js.jsx" - }, - "2": { - "name": "storage.type.internaldeclaration.js.jsx" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.js.jsx" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.js.jsx" - } - } - }, - { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.js.jsx" - }, - "2": { - "name": "comment.line.double-slash.js.jsx" - }, - "3": { - "name": "punctuation.definition.comment.js.jsx" - }, - "4": { - "name": "storage.type.internaldeclaration.js.jsx" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.js.jsx" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.js.jsx" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.js.jsx" - }, - "2": { - "name": "comment.line.double-slash.js.jsx" - }, - "3": { - "name": "punctuation.definition.comment.js.jsx" - }, - "4": { - "name": "storage.type.internaldeclaration.js.jsx" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.js.jsx" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.js.jsx" - }, - "directives": { - "name": "comment.line.triple-slash.directive.js.jsx", - "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.js.jsx" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "meta.tag.js.jsx", - "begin": "(<)(reference|amd-dependency|amd-module)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.directive.js.jsx" - }, - "2": { - "name": "entity.name.tag.directive.js.jsx" - } - }, - "end": "/>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.directive.js.jsx" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.js.jsx", - "match": "path|types|no-default-lib|lib|name" - }, - { - "name": "keyword.operator.assignment.js.jsx", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # ", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "keyword.operator.control.jsdoc" - }, - "5": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "begin": "\\G(<)caption(>)", - "beginCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - }, - "end": "()|(?=\\*/)", - "endCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.js.jsx" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "((@)typedef)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" - }, - "2": { - "name": "keyword.operator.assignment.jsdoc" - }, - "3": { - "name": "source.embedded.js.jsx" - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" - }, - "5": { - "name": "invalid.illegal.syntax.jsdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - }, - "4": { - "name": "punctuation.definition.string.begin.jsdoc" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.jsdoc", - "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - }, - "2": { - "name": "storage.type.class.jsdoc" - }, - "3": { - "name": "punctuation.definition.inline.tag.jsdoc" - } - }, - "end": "}|(?=\\*/)", - "endCaptures": { - "0": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - } - }, - "end": "((}))\\s*|(?=\\*/)", - "endCaptures": { - "1": { - "name": "entity.name.type.instance.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "jsx": { - "patterns": [ - { - "include": "#jsx-tag-without-attributes-in-expression" - }, - { - "include": "#jsx-tag-in-expression" - } - ] - }, - "jsx-tag-without-attributes-in-expression": { - "begin": "(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - } - ] - }, - "jsx-tag-without-attributes": { - "name": "meta.tag.without-attributes.js.jsx", - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)", - "end": "()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js.jsx" - }, - "2": { - "name": "entity.name.tag.namespace.js.jsx" - }, - "3": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "4": { - "name": "entity.name.tag.js.jsx" - }, - "5": { - "name": "support.class.component.js.jsx" - }, - "6": { - "name": "punctuation.definition.tag.end.js.jsx" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js.jsx" - }, - "2": { - "name": "entity.name.tag.namespace.js.jsx" - }, - "3": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "4": { - "name": "entity.name.tag.js.jsx" - }, - "5": { - "name": "support.class.component.js.jsx" - }, - "6": { - "name": "punctuation.definition.tag.end.js.jsx" - } - }, - "contentName": "meta.jsx.children.js.jsx", - "patterns": [ - { - "include": "#jsx-children" - } - ] - }, - "jsx-tag-in-expression": { - "begin": "(?x)\n (?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "patterns": [ - { - "include": "#jsx-tag" - } - ] - }, - "jsx-tag": { - "name": "meta.tag.js.jsx", - "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(/>)|(?:())", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js.jsx" - }, - "2": { - "name": "punctuation.definition.tag.begin.js.jsx" - }, - "3": { - "name": "entity.name.tag.namespace.js.jsx" - }, - "4": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "5": { - "name": "entity.name.tag.js.jsx" - }, - "6": { - "name": "support.class.component.js.jsx" - }, - "7": { - "name": "punctuation.definition.tag.end.js.jsx" - } - }, - "patterns": [ - { - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.js.jsx" - }, - "2": { - "name": "entity.name.tag.namespace.js.jsx" - }, - "3": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "4": { - "name": "entity.name.tag.js.jsx" - }, - "5": { - "name": "support.class.component.js.jsx" - } - }, - "end": "(?=[/]?>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-arguments" - }, - { - "include": "#jsx-tag-attributes" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.js.jsx" - } - }, - "end": "(?=)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#jsx-tag-attribute-name" - }, - { - "include": "#jsx-tag-attribute-assignment" - }, - { - "include": "#jsx-string-double-quoted" - }, - { - "include": "#jsx-string-single-quoted" - }, - { - "include": "#jsx-evaluated-code" - }, - { - "include": "#jsx-tag-attributes-illegal" - } - ] - }, - "jsx-tag-attribute-name": { - "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.js.jsx" - }, - "2": { - "name": "punctuation.separator.namespace.js.jsx" - }, - "3": { - "name": "entity.other.attribute-name.js.jsx" - } - } - }, - "jsx-tag-attribute-assignment": { - "name": "keyword.operator.assignment.js.jsx", - "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" - }, - "jsx-string-double-quoted": { - "name": "string.quoted.double.js.jsx", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-string-single-quoted": { - "name": "string.quoted.single.js.jsx", - "begin": "'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.js.jsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.js.jsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-tag-attributes-illegal": { - "name": "invalid.illegal.attribute.js.jsx", - "match": "\\S+" - } - } -} \ No newline at end of file diff --git a/extensions/javascript/syntaxes/Readme.md b/extensions/javascript/syntaxes/Readme.md deleted file mode 100644 index bc29199fd73..00000000000 --- a/extensions/javascript/syntaxes/Readme.md +++ /dev/null @@ -1,10 +0,0 @@ -The file `JavaScript.tmLanguage.json` is derived from [TypeScriptReact.tmLanguage](https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage). - -To update to the latest version: -- `cd extensions/typescript` and run `npm run update-grammars` -- don't forget to run the integration tests at `./scripts/test-integration.sh` - -The script does the following changes: -- fileTypes .tsx -> .js & .jsx -- scopeName scope.tsx -> scope.js -- update all rule names .tsx -> .js diff --git a/extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage b/extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage deleted file mode 100644 index 1dda780649d..00000000000 --- a/extensions/javascript/syntaxes/Regular Expressions (JavaScript).tmLanguage +++ /dev/null @@ -1,237 +0,0 @@ - - - - - fileTypes - - hideFromUser - - name - Regular Expressions (JavaScript) - patterns - - - include - #regexp - - - repository - - regex-character-class - - patterns - - - match - \\[wWsSdD]|\. - name - constant.character.character-class.regexp - - - match - \\([0-7]{3}|x\h\h|u\h\h\h\h) - name - constant.character.numeric.regexp - - - match - \\c[A-Z] - name - constant.character.control.regexp - - - match - \\. - name - constant.character.escape.backslash.regexp - - - - regexp - - patterns - - - match - \\[bB]|\^|\$ - name - keyword.control.anchor.regexp - - - match - \\[1-9]\d* - name - keyword.other.back-reference.regexp - - - match - [?+*]|\{(\d+,\d+|\d+,|,\d+|\d+)\}\?? - name - keyword.operator.quantifier.regexp - - - match - \| - name - keyword.operator.or.regexp - - - begin - (\()((\?=)|(\?!)) - beginCaptures - - 1 - - name - punctuation.definition.group.regexp - - 3 - - name - meta.assertion.look-ahead.regexp - - 4 - - name - meta.assertion.negative-look-ahead.regexp - - - end - (\)) - endCaptures - - 1 - - name - punctuation.definition.group.regexp - - - name - meta.group.assertion.regexp - patterns - - - include - #regexp - - - - - begin - \((\?:)? - beginCaptures - - 0 - - name - punctuation.definition.group.regexp - - - end - \) - endCaptures - - 0 - - name - punctuation.definition.group.regexp - - - name - meta.group.regexp - patterns - - - include - #regexp - - - - - begin - (\[)(\^)? - beginCaptures - - 1 - - name - punctuation.definition.character-class.regexp - - 2 - - name - keyword.operator.negation.regexp - - - end - (\]) - endCaptures - - 1 - - name - punctuation.definition.character-class.regexp - - - name - constant.other.character-class.set.regexp - patterns - - - captures - - 1 - - name - constant.character.numeric.regexp - - 2 - - name - constant.character.control.regexp - - 3 - - name - constant.character.escape.backslash.regexp - - 4 - - name - constant.character.numeric.regexp - - 5 - - name - constant.character.control.regexp - - 6 - - name - constant.character.escape.backslash.regexp - - - match - (?:.|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.))\-(?:[^\]\\]|(\\(?:[0-7]{3}|x\h\h|u\h\h\h\h))|(\\c[A-Z])|(\\.)) - name - constant.other.character-class.range.regexp - - - include - #regex-character-class - - - - - include - #regex-character-class - - - - - scopeName - source.js.regexp - uuid - AC8679DE-3AC7-4056-84F9-69A7ADC29DDD - - diff --git a/extensions/javascript/tags-language-configuration.json b/extensions/javascript/tags-language-configuration.json deleted file mode 100644 index fa04cf1756f..00000000000 --- a/extensions/javascript/tags-language-configuration.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "comments": { - "blockComment": [ "{/*", "*/}" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["<", ">"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}" }, - { "open": "[", "close": "]" }, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "/**", "close": " */", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["<", ">"], - ["'", "'"], - ["\"", "\""] - ] -} \ No newline at end of file diff --git a/extensions/javascript/test/colorize-fixtures/test.js b/extensions/javascript/test/colorize-fixtures/test.js deleted file mode 100644 index aa4f58de32d..00000000000 --- a/extensions/javascript/test/colorize-fixtures/test.js +++ /dev/null @@ -1,37 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -var gulp = require('gulp'); -var tsb = require('gulp-tsb'); -var util = require('./lib/util'); -var watcher = require('./lib/watch'); -var assign = require('object-assign'); - -var compilation = tsb.create(assign({ verbose: true }, require('./tsconfig.json').compilerOptions)); - -gulp.task('compile', function() { - return gulp.src('**/*.ts', { base: '.' }) - .pipe(compilation()) - .pipe(gulp.dest('')); -}); - -gulp.task('watch', function() { - var src = gulp.src('**/*.ts', { base: '.' }); - - return watcher('**/*.ts', { base: '.' }) - .pipe(util.incremental(compilation, src)) - .pipe(gulp.dest('')); -}); - -gulp.task('default', ['compile']); - -function cloneArray(arr) { - _.foo(); - var r = []; - for (var i = 0, len = arr.length; i < len; i++) { - r[i] = doClone(arr[i]); - } - return r; -} \ No newline at end of file diff --git a/extensions/javascript/test/colorize-fixtures/test.jsx b/extensions/javascript/test/colorize-fixtures/test.jsx deleted file mode 100644 index 18e667eee21..00000000000 --- a/extensions/javascript/test/colorize-fixtures/test.jsx +++ /dev/null @@ -1,35 +0,0 @@ -var ToggleText = React.createClass({ - getInitialState: function () { - return { - showDefault: true - } - }, - - toggle: function (e) { - // Prevent following the link. - e.preventDefault(); - - // Invert the chosen default. - // This will trigger an intelligent re-render of the component. - this.setState({ showDefault: !this.state.showDefault }) - }, - - render: function () { - // Default to the default message. - var message = this.props.default; - - // If toggled, show the alternate message. - if (!this.state.showDefault) { - message = this.props.alt; - } - - return ( -
-

Hello {message}!

- Toggle -
- ); - } -}); - -React.render(, document.body); \ No newline at end of file diff --git a/extensions/javascript/test/colorize-fixtures/test6916.js b/extensions/javascript/test/colorize-fixtures/test6916.js deleted file mode 100644 index b65b9079fa9..00000000000 --- a/extensions/javascript/test/colorize-fixtures/test6916.js +++ /dev/null @@ -1 +0,0 @@ -for(var i=0;i<9;i++){for(var j;j", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx punctuation.definition.tag.end.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx punctuation.definition.tag.begin.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "h1", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx entity.name.tag.js.jsx", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx punctuation.definition.tag.end.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Hello ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx punctuation.section.embedded.begin.js.jsx", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "message", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.embedded.expression.js.jsx variable.other.readwrite.js.jsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx punctuation.section.embedded.end.js.jsx", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "!", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.without-attributes.js.jsx punctuation.definition.tag.end.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx punctuation.definition.tag.begin.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "a", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx entity.name.tag.js.jsx", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "href", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx entity.other.attribute-name.js.jsx", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx keyword.operator.assignment.js.jsx", - "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" - } - }, - { - "c": "\"", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx punctuation.definition.string.begin.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx punctuation.definition.string.end.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "onClick", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx entity.other.attribute-name.js.jsx", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx keyword.operator.assignment.js.jsx", - "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" - } - }, - { - "c": "{", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx punctuation.section.embedded.begin.js.jsx", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "this", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx meta.embedded.expression.js.jsx variable.language.this.js.jsx", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx meta.embedded.expression.js.jsx punctuation.accessor.js.jsx", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "toggle", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx meta.embedded.expression.js.jsx variable.other.property.js.jsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx punctuation.section.embedded.end.js.jsx", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": ">", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx punctuation.definition.tag.end.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Toggle", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx meta.jsx.children.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx meta.tag.js.jsx punctuation.definition.tag.end.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx meta.jsx.children.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.tag.without-attributes.js.jsx punctuation.definition.tag.end.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx meta.brace.round.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx punctuation.terminator.statement.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx meta.object.member.js.jsx meta.function.expression.js.jsx meta.block.js.jsx punctuation.definition.block.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.js.jsx meta.var.expr.js.jsx meta.objectliteral.js.jsx punctuation.definition.block.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.js.jsx meta.var.expr.js.jsx meta.brace.round.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.js.jsx punctuation.terminator.statement.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "React", - "t": "source.js.jsx meta.function-call.js.jsx variable.other.object.js.jsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.js.jsx meta.function-call.js.jsx punctuation.accessor.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "render", - "t": "source.js.jsx meta.function-call.js.jsx entity.name.function.js.jsx", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.js.jsx meta.brace.round.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.js.jsx meta.tag.js.jsx punctuation.definition.tag.begin.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "ToggleText", - "t": "source.js.jsx meta.tag.js.jsx entity.name.tag.js.jsx support.class.component.js.jsx", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "default", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx entity.other.attribute-name.js.jsx", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx keyword.operator.assignment.js.jsx", - "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" - } - }, - { - "c": "\"", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx punctuation.definition.string.begin.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "World", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx punctuation.definition.string.end.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "alt", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx entity.other.attribute-name.js.jsx", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx keyword.operator.assignment.js.jsx", - "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" - } - }, - { - "c": "\"", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx punctuation.definition.string.begin.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Mars", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx string.quoted.double.js.jsx punctuation.definition.string.end.js.jsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.js.jsx meta.tag.js.jsx meta.tag.attributes.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/>", - "t": "source.js.jsx meta.tag.js.jsx punctuation.definition.tag.end.js.jsx", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": ",", - "t": "source.js.jsx punctuation.separator.comma.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "document", - "t": "source.js.jsx variable.other.object.js.jsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.js.jsx punctuation.accessor.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "body", - "t": "source.js.jsx variable.other.property.js.jsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.js.jsx meta.brace.round.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.js.jsx punctuation.terminator.statement.js.jsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/json/.vscodeignore b/extensions/json/.vscodeignore deleted file mode 100644 index d42f161c710..00000000000 --- a/extensions/json/.vscodeignore +++ /dev/null @@ -1,3 +0,0 @@ -build/** -test/** -cgmanifest.json diff --git a/extensions/json/build/update-grammars.js b/extensions/json/build/update-grammars.js deleted file mode 100644 index bf72e5290f0..00000000000 --- a/extensions/json/build/update-grammars.js +++ /dev/null @@ -1,41 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * 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('../../../build/npm/update-grammar'); - -function adaptJSON(grammar, replacementScope) { - grammar.name = 'JSON with comments'; - grammar.scopeName = `source${replacementScope}`; - - var fixScopeNames = function(rule) { - if (typeof rule.name === 'string') { - rule.name = rule.name.replace(/\.json/g, replacementScope); - } - if (typeof rule.contentName === 'string') { - rule.contentName = rule.contentName.replace(/\.json/g, replacementScope); - } - for (var property in rule) { - var value = rule[property]; - if (typeof value === 'object') { - fixScopeNames(value); - } - } - }; - - var repository = grammar.repository; - for (var key in repository) { - fixScopeNames(repository[key]); - } -} - -var tsGrammarRepo = 'microsoft/vscode-JSON.tmLanguage'; -updateGrammar.update(tsGrammarRepo, 'JSON.tmLanguage', './syntaxes/JSON.tmLanguage.json'); -updateGrammar.update(tsGrammarRepo, 'JSON.tmLanguage', './syntaxes/JSONC.tmLanguage.json', grammar => adaptJSON(grammar, '.json.comments')); - - - - - diff --git a/extensions/json/cgmanifest.json b/extensions/json/cgmanifest.json deleted file mode 100644 index 1af8426e535..00000000000 --- a/extensions/json/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "microsoft/vscode-JSON.tmLanguage", - "repositoryUrl": "https://github.com/microsoft/vscode-JSON.tmLanguage", - "commitHash": "9bd83f1c252b375e957203f21793316203f61f70" - } - }, - "license": "MIT", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/json/language-configuration.json b/extensions/json/language-configuration.json deleted file mode 100644 index 7faa70cef7a..00000000000 --- a/extensions/json/language-configuration.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}", "notIn": ["string"] }, - { "open": "[", "close": "]", "notIn": ["string"] }, - { "open": "(", "close": ")", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] }, - { "open": "\"", "close": "\"", "notIn": ["string", "comment"] }, - { "open": "`", "close": "`", "notIn": ["string", "comment"] } - ] -} diff --git a/extensions/json/package.json b/extensions/json/package.json deleted file mode 100644 index 1b7331b2071..00000000000 --- a/extensions/json/package.json +++ /dev/null @@ -1,78 +0,0 @@ -{ - "name": "json", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "scripts": { - "update-grammar": "node ./build/update-grammars.js" - }, - "contributes": { - "languages": [ - { - "id": "json", - "aliases": [ - "JSON", - "json" - ], - "extensions": [ - ".json", - ".bowerrc", - ".jscsrc", - ".webmanifest", - ".js.map", - ".css.map", - ".ts.map", - ".har", - ".jslintrc", - ".jsonld" - ], - "filenames": [ - "composer.lock", - ".watchmanconfig" - ], - "mimetypes": [ - "application/json", - "application/manifest+json" - ], - "configuration": "./language-configuration.json" - }, - { - "id": "jsonc", - "aliases": [ - "JSON with Comments" - ], - "extensions": [ - ".jsonc", - ".eslintrc", - ".eslintrc.json", - ".jsfmtrc", - ".jshintrc", - ".swcrc", - ".hintrc", - ".babelrc" - ], - "filenames": [ - ".ember-cli" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "json", - "scopeName": "source.json", - "path": "./syntaxes/JSON.tmLanguage.json" - }, - { - "language": "jsonc", - "scopeName": "source.json.comments", - "path": "./syntaxes/JSONC.tmLanguage.json" - } - ] - } -} diff --git a/extensions/json/package.nls.json b/extensions/json/package.nls.json deleted file mode 100644 index 6307b6dcabb..00000000000 --- a/extensions/json/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "JSON Language Basics", - "description": "Provides syntax highlighting & bracket matching in JSON files." -} \ No newline at end of file diff --git a/extensions/json/syntaxes/JSON.tmLanguage.json b/extensions/json/syntaxes/JSON.tmLanguage.json deleted file mode 100644 index b53febdc8ad..00000000000 --- a/extensions/json/syntaxes/JSON.tmLanguage.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", - "name": "JSON (Javascript Next)", - "scopeName": "source.json", - "patterns": [ - { - "include": "#value" - } - ], - "repository": { - "array": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.json" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.json" - } - }, - "name": "meta.structure.array.json", - "patterns": [ - { - "include": "#value" - }, - { - "match": ",", - "name": "punctuation.separator.array.json" - }, - { - "match": "[^\\s\\]]", - "name": "invalid.illegal.expected-array-separator.json" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?!/)", - "captures": { - "0": { - "name": "punctuation.definition.comment.json" - } - }, - "end": "\\*/", - "name": "comment.block.documentation.json" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.json" - } - }, - "end": "\\*/", - "name": "comment.block.json" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.json" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.js" - } - ] - }, - "constant": { - "match": "\\b(?:true|false|null)\\b", - "name": "constant.language.json" - }, - "number": { - "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", - "name": "constant.numeric.json" - }, - "object": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dictionary.begin.json" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.dictionary.end.json" - } - }, - "name": "meta.structure.dictionary.json", - "patterns": [ - { - "comment": "the JSON object key", - "include": "#objectkey" - }, - { - "include": "#comments" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.dictionary.key-value.json" - } - }, - "end": "(,)|(?=\\})", - "endCaptures": { - "1": { - "name": "punctuation.separator.dictionary.pair.json" - } - }, - "name": "meta.structure.dictionary.value.json", - "patterns": [ - { - "comment": "the JSON object value", - "include": "#value" - }, - { - "match": "[^\\s,]", - "name": "invalid.illegal.expected-dictionary-separator.json" - } - ] - }, - { - "match": "[^\\s\\}]", - "name": "invalid.illegal.expected-dictionary-separator.json" - } - ] - }, - "string": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.json" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.json" - } - }, - "name": "string.quoted.double.json", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "objectkey": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.support.type.property-name.begin.json" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.support.type.property-name.end.json" - } - }, - "name": "string.json support.type.property-name.json", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "stringcontent": { - "patterns": [ - { - "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", - "name": "constant.character.escape.json" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.json" - } - ] - }, - "value": { - "patterns": [ - { - "include": "#constant" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#array" - }, - { - "include": "#object" - }, - { - "include": "#comments" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/json/syntaxes/JSONC.tmLanguage.json b/extensions/json/syntaxes/JSONC.tmLanguage.json deleted file mode 100644 index 31828ba65bb..00000000000 --- a/extensions/json/syntaxes/JSONC.tmLanguage.json +++ /dev/null @@ -1,213 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-JSON.tmLanguage/blob/master/JSON.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-JSON.tmLanguage/commit/9bd83f1c252b375e957203f21793316203f61f70", - "name": "JSON with comments", - "scopeName": "source.json.comments", - "patterns": [ - { - "include": "#value" - } - ], - "repository": { - "array": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.array.begin.json.comments" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.json.comments" - } - }, - "name": "meta.structure.array.json.comments", - "patterns": [ - { - "include": "#value" - }, - { - "match": ",", - "name": "punctuation.separator.array.json.comments" - }, - { - "match": "[^\\s\\]]", - "name": "invalid.illegal.expected-array-separator.json.comments" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?!/)", - "captures": { - "0": { - "name": "punctuation.definition.comment.json.comments" - } - }, - "end": "\\*/", - "name": "comment.block.documentation.json.comments" - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.json.comments" - } - }, - "end": "\\*/", - "name": "comment.block.json.comments" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.comment.json.comments" - } - }, - "match": "(//).*$\\n?", - "name": "comment.line.double-slash.js" - } - ] - }, - "constant": { - "match": "\\b(?:true|false|null)\\b", - "name": "constant.language.json.comments" - }, - "number": { - "match": "(?x) # turn on extended mode\n -? # an optional minus\n (?:\n 0 # a zero\n | # ...or...\n [1-9] # a 1-9 character\n \\d* # followed by zero or more digits\n )\n (?:\n (?:\n \\. # a period\n \\d+ # followed by one or more digits\n )?\n (?:\n [eE] # an e character\n [+-]? # followed by an option +/-\n \\d+ # followed by one or more digits\n )? # make exponent optional\n )? # make decimal portion optional", - "name": "constant.numeric.json.comments" - }, - "object": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.dictionary.begin.json.comments" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.dictionary.end.json.comments" - } - }, - "name": "meta.structure.dictionary.json.comments", - "patterns": [ - { - "comment": "the JSON object key", - "include": "#objectkey" - }, - { - "include": "#comments" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.dictionary.key-value.json.comments" - } - }, - "end": "(,)|(?=\\})", - "endCaptures": { - "1": { - "name": "punctuation.separator.dictionary.pair.json.comments" - } - }, - "name": "meta.structure.dictionary.value.json.comments", - "patterns": [ - { - "comment": "the JSON object value", - "include": "#value" - }, - { - "match": "[^\\s,]", - "name": "invalid.illegal.expected-dictionary-separator.json.comments" - } - ] - }, - { - "match": "[^\\s\\}]", - "name": "invalid.illegal.expected-dictionary-separator.json.comments" - } - ] - }, - "string": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.json.comments" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.json.comments" - } - }, - "name": "string.quoted.double.json.comments", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "objectkey": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.support.type.property-name.begin.json.comments" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.support.type.property-name.end.json.comments" - } - }, - "name": "string.json.comments support.type.property-name.json.comments", - "patterns": [ - { - "include": "#stringcontent" - } - ] - }, - "stringcontent": { - "patterns": [ - { - "match": "(?x) # turn on extended mode\n \\\\ # a literal backslash\n (?: # ...followed by...\n [\"\\\\/bfnrt] # one of these characters\n | # ...or...\n u # a u\n [0-9a-fA-F]{4}) # and four hex digits", - "name": "constant.character.escape.json.comments" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unrecognized-string-escape.json.comments" - } - ] - }, - "value": { - "patterns": [ - { - "include": "#constant" - }, - { - "include": "#number" - }, - { - "include": "#string" - }, - { - "include": "#array" - }, - { - "include": "#object" - }, - { - "include": "#comments" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/json/test/colorize-fixtures/test.json b/extensions/json/test/colorize-fixtures/test.json deleted file mode 100644 index 189b7269d48..00000000000 --- a/extensions/json/test/colorize-fixtures/test.json +++ /dev/null @@ -1,14 +0,0 @@ -{ - // a comment - "options": { - "myBool": true, - "myInteger": 1, - "myString": "String\u0056", - "myNumber": 1.24, - "myNull": null, - "myArray": [ 1, "Hello", true, null, [], {}], - "myObject" : { - "foo": "bar" - } - } -} \ No newline at end of file diff --git a/extensions/json/test/colorize-results/test_json.json b/extensions/json/test/colorize-results/test_json.json deleted file mode 100644 index 6f94bec76e6..00000000000 --- a/extensions/json/test/colorize-results/test_json.json +++ /dev/null @@ -1,1168 +0,0 @@ -[ - { - "c": "{", - "t": "source.json meta.structure.dictionary.json punctuation.definition.dictionary.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.json meta.structure.dictionary.json comment.line.double-slash.js punctuation.definition.comment.json", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " a comment", - "t": "source.json meta.structure.dictionary.json comment.line.double-slash.js", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "options", - "t": "source.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json punctuation.definition.dictionary.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "myBool", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json constant.language.json", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.pair.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "myInteger", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json constant.numeric.json", - "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" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.pair.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "myString", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json punctuation.definition.string.begin.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "String", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\u0056", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json constant.character.escape.json", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json punctuation.definition.string.end.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.pair.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "myNumber", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1.24", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json constant.numeric.json", - "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" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.pair.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "myNull", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "null", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json constant.language.json", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.pair.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "myArray", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json punctuation.definition.array.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json constant.numeric.json", - "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" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json punctuation.separator.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json string.quoted.double.json punctuation.definition.string.begin.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Hello", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json string.quoted.double.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json string.quoted.double.json punctuation.definition.string.end.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json punctuation.separator.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json constant.language.json", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json punctuation.separator.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "null", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json constant.language.json", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json punctuation.separator.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.array.json punctuation.definition.array.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.array.json punctuation.definition.array.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json punctuation.separator.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json punctuation.definition.dictionary.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json meta.structure.dictionary.json punctuation.definition.dictionary.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.array.json punctuation.definition.array.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.pair.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "myObject", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json punctuation.definition.dictionary.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "foo", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json punctuation.definition.string.begin.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "bar", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json punctuation.definition.string.end.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json punctuation.definition.dictionary.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json punctuation.definition.dictionary.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.json meta.structure.dictionary.json punctuation.definition.dictionary.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/less/.vscodeignore b/extensions/less/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/less/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/less/cgmanifest.json b/extensions/less/cgmanifest.json deleted file mode 100644 index 1951ef04bee..00000000000 --- a/extensions/less/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "language-less", - "repositoryUrl": "https://github.com/atom/language-less", - "commitHash": "87d4d59e8de6796b506b81a16e1dc1fafc99d30f" - } - }, - "license": "MIT", - "version": "0.34.2" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/less/language-configuration.json b/extensions/less/language-configuration.json deleted file mode 100644 index 181954633b0..00000000000 --- a/extensions/less/language-configuration.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "comments": { - "blockComment": ["/*", "*/"], - "lineComment": "//" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}", "notIn": ["string", "comment"] }, - { "open": "[", "close": "]", "notIn": ["string", "comment"] }, - { "open": "(", "close": ")", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string", "comment"] }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ], - "indentationRules": { - "increaseIndentPattern": "(^.*\\{[^}]*$)", - "decreaseIndentPattern": "^\\s*\\}" - }, - "folding": { - "markers": { - "start": "^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/", - "end": "^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/" - } - } -} \ No newline at end of file diff --git a/extensions/less/package.json b/extensions/less/package.json deleted file mode 100644 index 4dea57de0f0..00000000000 --- a/extensions/less/package.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "name": "less", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js atom/language-less grammars/less.cson ./syntaxes/less.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "less", - "aliases": ["Less", "less"], - "extensions": [".less"], - "mimetypes": ["text/x-less", "text/less"], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "less", - "scopeName": "source.css.less", - "path": "./syntaxes/less.tmLanguage.json" - }], - "problemMatchers": [ - { - "name": "lessc", - "label": "Lessc compiler", - "owner": "lessc", - "source": "less", - "fileLocation": "absolute", - "pattern": { - "regexp": "(.*)\\sin\\s(.*)\\son line\\s(\\d+),\\scolumn\\s(\\d+)", - "message": 1, - "file": 2, - "line": 3, - "column": 4 - } - } - ] - } -} \ No newline at end of file diff --git a/extensions/less/package.nls.json b/extensions/less/package.nls.json deleted file mode 100644 index bad671bf059..00000000000 --- a/extensions/less/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Less Language Basics", - "description": "Provides syntax highlighting, bracket matching and folding in Less files." -} \ No newline at end of file diff --git a/extensions/less/syntaxes/less.tmLanguage.json b/extensions/less/syntaxes/less.tmLanguage.json deleted file mode 100644 index 3f0b88a29d7..00000000000 --- a/extensions/less/syntaxes/less.tmLanguage.json +++ /dev/null @@ -1,542 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-less/blob/master/grammars/less.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-less/commit/87d4d59e8de6796b506b81a16e1dc1fafc99d30f", - "name": "Less", - "scopeName": "source.css.less", - "patterns": [ - { - "include": "#strings" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.class.mixin.css" - } - }, - "match": "(\\.[_a-zA-Z][a-zA-Z0-9_-]*(?=\\())" - }, - { - "captures": { - "1": { - "name": "entity.other.attribute-name.class.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "4": { - "name": "variable.other.interpolation.less" - } - }, - "match": "((\\.)([_a-zA-Z]|(@{[a-zA-Z0-9_-]+}))[a-zA-Z0-9_-]*)" - }, - { - "captures": { - "0": { - "name": "entity.other.attribute-name.parent-selector.css" - }, - "1": { - "name": "punctuation.definition.entity.css" - } - }, - "match": "(&)[a-zA-Z0-9_-]*" - }, - { - "begin": "(format|local|url|attr|counter|counters)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.misc.css" - }, - "2": { - "name": "punctuation.section.function.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.css" - } - }, - "patterns": [ - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.css" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.css" - } - }, - "name": "string.quoted.single.css", - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.css" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.css" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.css" - } - }, - "name": "string.quoted.double.css", - "patterns": [ - { - "match": "\\\\(\\d{1,6}|.)", - "name": "constant.character.escape.css" - } - ] - }, - { - "match": "[^'\") \\t]+", - "name": "variable.parameter.misc.css" - } - ] - }, - { - "match": "(#)([0-9a-fA-F]{3}|[0-9a-fA-F]{6})\\b(?!.*?(?(['\"])(?:[^\\\\]|\\\\.)*?(\\6)))))?\\s*(\\])", - "name": "meta.attribute-selector.css" - }, - { - "begin": "((@)import\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.import.less" - }, - "2": { - "name": "punctuation.definition.keyword.less" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.css" - } - }, - "name": "meta.at-rule.import.css", - "patterns": [ - { - "match": "(?<=\\(|,|\\s)\\b(reference|optional|once|multiple|less|inline)\\b(?=\\)|,)", - "name": "keyword.control.import.option.less" - }, - { - "include": "#brace_round" - }, - { - "include": "source.css#commas" - }, - { - "include": "#strings" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.at-rule.fontface.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "match": "^\\s*((@)font-face\\b)", - "name": "meta.at-rule.fontface.css" - }, - { - "captures": { - "1": { - "name": "keyword.control.at-rule.media.css" - }, - "2": { - "name": "punctuation.definition.keyword.css" - } - }, - "match": "^\\s*((@)media\\b)", - "name": "meta.at-rule.media.css" - }, - { - "include": "source.css#media-features" - }, - { - "match": "\\b(tv|tty|screen|projection|print|handheld|embossed|braille|aural|all)\\b", - "name": "support.constant.media-type.media.css" - }, - { - "match": "\\b(portrait|landscape)\\b", - "name": "support.constant.property-value.media-property.media.css" - }, - { - "captures": { - "1": { - "name": "support.function.less" - } - }, - "match": "(\\.[a-zA-Z0-9_-]+)\\s*(;|\\()" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.less" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.less" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.less" - } - ] - }, - { - "match": "(@|\\-\\-)[\\w-]+(?=\\s*)", - "name": "variable.other.less", - "captures": { - "1": { - "name": "punctuation.definition.variable.less" - } - } - }, - { - "include": "#variable_interpolation" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.property-list.begin.bracket.curly.css" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.property-list.end.bracket.curly.css" - } - }, - "name": "meta.property-list.css", - "patterns": [ - { - "include": "source.css#pseudo-elements" - }, - { - "include": "source.css#pseudo-classes" - }, - { - "include": "source.css#tag-names" - }, - { - "include": "source.css#commas" - }, - { - "include": "#variable_interpolation" - }, - { - "include": "source.css#property-names" - }, - { - "include": "#property_values" - }, - { - "include": "$self" - } - ] - }, - { - "match": "\\!\\s*important", - "name": "keyword.other.important.css" - }, - { - "match": "\\*|\\/|\\-|\\+|~|=|<=|>=|<|>", - "name": "keyword.operator.less" - }, - { - "match": "\\b(not|and|when)\\b", - "name": "keyword.control.logical.operator.less" - }, - { - "include": "source.css#tag-names" - }, - { - "match": "(?=?|(?= 40800) - -ok := ok -$(info Braces {} in parentheses ({}): ${ok}) -${info Parentheses () in braces {()}: $(ok)} - -ifeq ("${ok}", "skip") - $(ok))} - ${ok}}) -endif - -result != echo "'$(ok)' $(shell echo "from inlined shell")" -$(info $(result)) - -# Below is a test of variable assignment without any spacing. -var=val -var?=val -var:=123 -var!=echo val -var:=val \ -notvar=butval -var:=$(val:.c=.o) - -var-$(nested-var)=val - -# Spaces in a nested shell will hurt a colorizing of variable, -# but not so much. -var-$(shell printf 2) := val2 -$(info Should be 'val2' here: $(var-2)) - -export a ?= b:c diff --git a/extensions/make/test/colorize-results/makefile.json b/extensions/make/test/colorize-results/makefile.json deleted file mode 100644 index eacaa05384f..00000000000 --- a/extensions/make/test/colorize-results/makefile.json +++ /dev/null @@ -1,3423 +0,0 @@ -[ - { - "c": ".PHONY", - "t": "source.makefile meta.scope.target.makefile support.function.target.PHONY.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " all", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "all", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " echo hello", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".PHONY", - "t": "source.makefile meta.scope.target.makefile support.function.target.PHONY.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " hello", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "hello", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " main.o factorial.o ", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\\", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile constant.character.escape.continuation.makefile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " hello.o ", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "first", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "filter", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.filter.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " second,second", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\\", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile constant.character.escape.continuation.makefile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile punctuation.whitespace.comment.leading.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile comment.line.number-sign.makefile punctuation.definition.comment.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " This is a long ", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\\", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile comment.line.number-sign.makefile constant.character.escape.continuation.makefile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": " comment inside prerequisites.", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tg++ main.o factorial.o hello.o -o hello", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.makefile comment.line.number-sign.makefile punctuation.definition.comment.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " There are a building steps ", - "t": "source.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\\", - "t": "source.makefile comment.line.number-sign.makefile constant.character.escape.continuation.makefile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\tbelow. And the tab is at the beginning of this line.", - "t": "source.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "main.o", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " main.cpp", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\tg++ -c main.cpp", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "factorial.o", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " factorial.cpp", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\tg++ -c factorial.cpp ", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "fake_variable", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "hello.o", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " hello.cpp ", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\\", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile constant.character.escape.continuation.makefile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\t\t\t\t\t", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Colorizing with tabs at the beginning of the second line of prerequisites", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\tg++ -c hello.cpp -o ", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$@", - "t": "source.makefile meta.scope.recipe.makefile variable.language.makefile", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".PHONY", - "t": "source.makefile meta.scope.target.makefile support.function.target.PHONY.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " clean", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "clean", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\trm *o hello", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".PHONY", - "t": "source.makefile meta.scope.target.makefile support.function.target.PHONY.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " var", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.makefile punctuation.whitespace.comment.leading.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.makefile comment.line.number-sign.makefile punctuation.definition.comment.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " \"$$\" in a shell means to escape makefile's variable substitution.", - "t": "source.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tsome_shell_var=", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$$", - "t": "source.makefile meta.scope.recipe.makefile variable.language.makefile", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "(sed -nre 's/some regex with (group)/\\1/p')", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".PHONY", - "t": "source.makefile meta.scope.target.makefile support.function.target.PHONY.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " echo", - "t": "source.makefile meta.scope.target.makefile meta.scope.prerequisites.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "echo", - "t": "source.makefile meta.scope.target.makefile entity.name.function.target.makefile", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.makefile meta.scope.target.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\techo \"#\" and '#' in quotes are not comments ", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\\", - "t": "source.makefile meta.scope.recipe.makefile constant.character.escape.continuation.makefile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\t\tand '\\' will be continued", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.makefile meta.scope.recipe.makefile keyword.control.@.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "echo Shell is not printed out, just a message.", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@-+-+", - "t": "source.makefile meta.scope.recipe.makefile keyword.control.@-+-+.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "echo Error will be ignored here; invalidcommand", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.makefile punctuation.whitespace.comment.leading.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.makefile comment.line.number-sign.makefile punctuation.definition.comment.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " And we can see variables are highlited as supposed to be:", - "t": "source.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.makefile meta.scope.recipe.makefile keyword.control.@.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "echo '", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "CC", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "shell", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.shell.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " echo \"123\"", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.recipe.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " -o ", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$@", - "t": "source.makefile meta.scope.recipe.makefile variable.language.makefile", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "'", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@-", - "t": "source.makefile meta.scope.recipe.makefile keyword.control.@-.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "./point-and-slash-should-not-be-highlighted", - "t": "source.makefile meta.scope.recipe.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "define", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.define.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "defined", - "t": "source.makefile meta.scope.conditional.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.info.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " Checking existance of ", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "1", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "flavor", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.flavor.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile variable.other.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "1", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile variable.other.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile variable.other.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "if", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.if.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "filter", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.filter.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " undefined,", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "flavor", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.flavor.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile variable.other.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "1", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile variable.other.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile variable.other.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",0,1", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "endef", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.override.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "ifeq", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.ifeq.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "strip", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.strip.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "call", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.call.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " defined,TOP_DIR", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",0)", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.info.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " TOP_DIR must be set before including paths.mk", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "endif", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.endif.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "-include", - "t": "source.makefile keyword.control.include.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "TOP_DIR", - "t": "source.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "3rdparty.mk", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ifeq", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.ifeq.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "strip", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.strip.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "call", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.call.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " defined,CODIT_DIR", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",0)", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.info.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " CODIT_DIR must be set in ", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "TOP_DIR", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "3rdparty.mk", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "endif", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.endif.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "CXXVER_GE480", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "shell", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.shell.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " expr `", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "CXX", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " -dumpversion | sed -e 's/\\.\\([0-9][0-9]\\)/\\1/g' -e 's/\\.\\([0-9]\\)/0\\1/g' -e 's/^[0-9]\\{3,4\\}", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$$", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile variable.language.makefile", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "/&00/'` \\>= 40800", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ok", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ok", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.info.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " Braces {} in parentheses ({}): ", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ok", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.info.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " Parentheses () in braces {()}: ", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ok", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ifeq", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.ifeq.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (\"", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "${", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ok", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\", \"skip\")", - "t": "source.makefile meta.scope.conditional.makefile meta.scope.condition.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ok", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")}", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "${", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ok", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.makefile meta.scope.conditional.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "})", - "t": "source.makefile meta.scope.conditional.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "endif", - "t": "source.makefile meta.scope.conditional.makefile keyword.control.endif.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "result", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "!=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " echo \"'", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ok", - "t": "source.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "' ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "shell", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.shell.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " echo \"from inlined shell\"", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.info.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "result", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#", - "t": "source.makefile comment.line.number-sign.makefile punctuation.definition.comment.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Below is a test of variable assignment without any spacing.", - "t": "source.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "var", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "val", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "?=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "val", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "123", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "!=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "echo val", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "val ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\\", - "t": "source.makefile constant.character.escape.continuation.makefile", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "notvar=butval", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "val:.c=.o", - "t": "source.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "var-", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$(", - "t": "source.makefile variable.other.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "nested-var", - "t": "source.makefile variable.other.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile variable.other.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "val", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.makefile comment.line.number-sign.makefile punctuation.definition.comment.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Spaces in a nested shell will hurt a colorizing of variable,", - "t": "source.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.makefile comment.line.number-sign.makefile punctuation.definition.comment.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " but not so much.", - "t": "source.makefile comment.line.number-sign.makefile", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "var-", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "shell", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.shell.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " printf 2", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " := val2", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile support.function.info.makefile", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " Should be 'val2' here: ", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "var-2", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile meta.scope.function-call.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.makefile string.interpolated.makefile punctuation.definition.variable.makefile", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "export", - "t": "source.makefile keyword.control.export.makefile", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.makefile variable.other.makefile", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?=", - "t": "source.makefile punctuation.separator.key-value.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " b:c", - "t": "source.makefile", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/markdown-basics/.vscodeignore b/extensions/markdown-basics/.vscodeignore deleted file mode 100644 index 89fb2149dcb..00000000000 --- a/extensions/markdown-basics/.vscodeignore +++ /dev/null @@ -1,4 +0,0 @@ -test/** -src/** -tsconfig.json -cgmanifest.json diff --git a/extensions/markdown-basics/cgmanifest.json b/extensions/markdown-basics/cgmanifest.json deleted file mode 100644 index 92288d403b9..00000000000 --- a/extensions/markdown-basics/cgmanifest.json +++ /dev/null @@ -1,44 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "textmate/markdown.tmbundle", - "repositoryUrl": "https://github.com/textmate/markdown.tmbundle", - "commitHash": "11cf764606cb2cde54badb5d0e5a0758a8871c4b" - } - }, - "licenseDetail": [ - "Copyright (c) markdown.tmbundle authors", - "", - "If not otherwise specified (see below), files in this repository fall under the following license:", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information,", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ], - "license": "TextMate Bundle License", - "version": "0.0.0" - }, - { - "component": { - "type": "git", - "git": { - "name": "microsoft/vscode-markdown-tm-grammar", - "repositoryUrl": "https://github.com/microsoft/vscode-markdown-tm-grammar", - "commitHash": "7019b191c3ee38b6c345f3a2a843f223eb92ca1e" - } - }, - "license": "MIT", - "version": "1.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/markdown-basics/language-configuration.json b/extensions/markdown-basics/language-configuration.json deleted file mode 100644 index ccddf061e75..00000000000 --- a/extensions/markdown-basics/language-configuration.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "comments": { - // symbols used for start and end a block comment. Remove this entry if your language does not support block comments - "blockComment": [ - "" - ] - }, - // symbols used as brackets - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { - "open": "{", - "close": "}" - }, - { - "open": "[", - "close": "]" - }, - { - "open": "(", - "close": ")" - }, - { - "open": "<", - "close": ">", - "notIn": [ - "string" - ] - } - ], - "surroundingPairs": [ - ["(", ")"], - ["[", "]"], - ["`", "`"], - ["_", "_"], - ["*", "*"] - ], - "folding": { - "offSide": true, - "markers": { - "start": "^\\s*", - "end": "^\\s*" - } - } -} diff --git a/extensions/markdown-basics/package.json b/extensions/markdown-basics/package.json deleted file mode 100644 index bbc5e342db0..00000000000 --- a/extensions/markdown-basics/package.json +++ /dev/null @@ -1,95 +0,0 @@ -{ - "name": "markdown", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "^1.20.0" - }, - "contributes": { - "languages": [ - { - "id": "markdown", - "aliases": [ - "Markdown", - "markdown" - ], - "extensions": [ - ".md", - ".mkd", - ".mdwn", - ".mdown", - ".markdown", - ".markdn", - ".mdtxt", - ".mdtext", - ".workbook" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "markdown", - "scopeName": "text.html.markdown", - "path": "./syntaxes/markdown.tmLanguage.json", - "embeddedLanguages": { - "meta.embedded.block.html": "html", - "source.js": "javascript", - "source.css": "css", - "meta.embedded.block.frontmatter": "yaml", - "meta.embedded.block.css": "css", - "meta.embedded.block.ini": "ini", - "meta.embedded.block.java": "java", - "meta.embedded.block.lua": "lua", - "meta.embedded.block.makefile": "makefile", - "meta.embedded.block.perl": "perl", - "meta.embedded.block.r": "r", - "meta.embedded.block.ruby": "ruby", - "meta.embedded.block.php": "php", - "meta.embedded.block.sql": "sql", - "meta.embedded.block.vs_net": "vs_net", - "meta.embedded.block.xml": "xml", - "meta.embedded.block.xsl": "xsl", - "meta.embedded.block.yaml": "yaml", - "meta.embedded.block.dosbatch": "dosbatch", - "meta.embedded.block.clojure": "clojure", - "meta.embedded.block.coffee": "coffee", - "meta.embedded.block.c": "c", - "meta.embedded.block.cpp": "cpp", - "meta.embedded.block.diff": "diff", - "meta.embedded.block.dockerfile": "dockerfile", - "meta.embedded.block.go": "go", - "meta.embedded.block.groovy": "groovy", - "meta.embedded.block.pug": "jade", - "meta.embedded.block.javascript": "javascript", - "meta.embedded.block.json": "json", - "meta.embedded.block.less": "less", - "meta.embedded.block.objc": "objc", - "meta.embedded.block.scss": "scss", - "meta.embedded.block.perl6": "perl6", - "meta.embedded.block.powershell": "powershell", - "meta.embedded.block.python": "python", - "meta.embedded.block.rust": "rust", - "meta.embedded.block.scala": "scala", - "meta.embedded.block.shellscript": "shellscript", - "meta.embedded.block.typescript": "typescript", - "meta.embedded.block.typescriptreact": "typescriptreact", - "meta.embedded.block.csharp": "csharp", - "meta.embedded.block.fsharp": "fsharp" - } - } - ], - "snippets": [ - { - "language": "markdown", - "path": "./snippets/markdown.code-snippets" - } - ] - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js microsoft/vscode-markdown-tm-grammar syntaxes/markdown.tmLanguage ./syntaxes/markdown.tmLanguage.json" - } -} diff --git a/extensions/markdown-basics/package.nls.json b/extensions/markdown-basics/package.nls.json deleted file mode 100644 index 5911d3fdc59..00000000000 --- a/extensions/markdown-basics/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Markdown Language Basics", - "description": "Provides snippets and syntax highlighting for Markdown." -} diff --git a/extensions/markdown-basics/snippets/markdown.code-snippets b/extensions/markdown-basics/snippets/markdown.code-snippets deleted file mode 100644 index f0753507b6b..00000000000 --- a/extensions/markdown-basics/snippets/markdown.code-snippets +++ /dev/null @@ -1,92 +0,0 @@ -{ - "Insert bold text": { - "prefix": "bold", - "body": "**${1:${TM_SELECTED_TEXT}}**$0", - "description": "Insert bold text" - }, - "Insert italic text": { - "prefix": "italic", - "body": "*${1:${TM_SELECTED_TEXT}}*$0", - "description": "Insert italic text" - }, - "Insert quoted text": { - "prefix": "quote", - "body": "> ${1:${TM_SELECTED_TEXT}}", - "description": "Insert quoted text" - }, - "Insert inline code": { - "prefix": "code", - "body": "`${1:${TM_SELECTED_TEXT}}`$0", - "description": "Insert inline code" - }, - "Insert fenced code block": { - "prefix": "fenced codeblock", - "body": ["```${1:language}", "${TM_SELECTED_TEXT}$0", "```"], - "description": "Insert fenced code block" - }, - "Insert heading level 1": { - "prefix": "heading1", - "body": "# ${1:${TM_SELECTED_TEXT}}", - "description": "Insert heading level 1" - }, - "Insert heading level 2": { - "prefix": "heading2", - "body": "## ${1:${TM_SELECTED_TEXT}}", - "description": "Insert heading level 2" - }, - "Insert heading level 3": { - "prefix": "heading3", - "body": "### ${1:${TM_SELECTED_TEXT}}", - "description": "Insert heading level 3" - }, - "Insert heading level 4": { - "prefix": "heading4", - "body": "#### ${1:${TM_SELECTED_TEXT}}", - "description": "Insert heading level 4" - }, - "Insert heading level 5": { - "prefix": "heading5", - "body": "##### ${1:${TM_SELECTED_TEXT}}", - "description": "Insert heading level 5" - }, - "Insert heading level 6": { - "prefix": "heading6", - "body": "###### ${1:${TM_SELECTED_TEXT}}", - "description": "Insert heading level 6" - }, - "Insert unordered list": { - "prefix": "unordered list", - "body": ["- ${1:first}", "- ${2:second}", "- ${3:third}", "$0"], - "description": "Insert unordered list" - }, - "Insert ordered list": { - "prefix": "ordered list", - "body": ["1. ${1:first}", "2. ${2:second}", "3. ${3:third}", "$0"], - "description": "Insert ordered list" - }, - "Insert definition list": { - "prefix": "definition list", - "body": ["${1:term}", ": ${2:definition}", "$0"], - "description": "Insert definition list" - }, - "Insert horizontal rule": { - "prefix": "horizontal rule", - "body": "----------\n", - "description": "Insert horizontal rule" - }, - "Insert link": { - "prefix": "link", - "body": "[${TM_SELECTED_TEXT:${1:text}}](https://${2:link})$0", - "description": "Insert link" - }, - "Insert image": { - "prefix": "image", - "body": "![${TM_SELECTED_TEXT:${1:alt}}](https://${2:link})$0", - "description": "Insert image" - }, - "Insert strikethrough": { - "prefix": "strikethrough", - "body": "~~${1:${TM_SELECTED_TEXT}}~~", - "description": "Insert strikethrough" - }, -} diff --git a/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json b/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json deleted file mode 100644 index a61af0d0c06..00000000000 --- a/extensions/markdown-basics/syntaxes/markdown.tmLanguage.json +++ /dev/null @@ -1,2725 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-markdown-tm-grammar/blob/master/syntaxes/markdown.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-markdown-tm-grammar/commit/7019b191c3ee38b6c345f3a2a843f223eb92ca1e", - "name": "Markdown", - "scopeName": "text.html.markdown", - "patterns": [ - { - "include": "#frontMatter" - }, - { - "include": "#block" - } - ], - "repository": { - "block": { - "patterns": [ - { - "include": "#separator" - }, - { - "include": "#heading" - }, - { - "include": "#blockquote" - }, - { - "include": "#lists" - }, - { - "include": "#fenced_code_block" - }, - { - "include": "#raw_block" - }, - { - "include": "#link-def" - }, - { - "include": "#html" - }, - { - "include": "#paragraph" - } - ] - }, - "blockquote": { - "begin": "(^|\\G)[ ]{0,3}(>) ?", - "captures": { - "2": { - "name": "punctuation.definition.quote.begin.markdown" - } - }, - "name": "markup.quote.markdown", - "patterns": [ - { - "include": "#block" - } - ], - "while": "(^|\\G)\\s*(>) ?" - }, - "fenced_code_block_css": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(css|css.erb)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.css", - "patterns": [ - { - "include": "source.css" - } - ] - } - ] - }, - "fenced_code_block_basic": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(html|htm|shtml|xhtml|inc|tmpl|tpl)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.html", - "patterns": [ - { - "include": "text.html.basic" - } - ] - } - ] - }, - "fenced_code_block_ini": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ini|conf)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.ini", - "patterns": [ - { - "include": "source.ini" - } - ] - } - ] - }, - "fenced_code_block_java": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(java|bsh)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.java", - "patterns": [ - { - "include": "source.java" - } - ] - } - ] - }, - "fenced_code_block_lua": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(lua)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.lua", - "patterns": [ - { - "include": "source.lua" - } - ] - } - ] - }, - "fenced_code_block_makefile": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(Makefile|makefile|GNUmakefile|OCamlMakefile)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.makefile", - "patterns": [ - { - "include": "source.makefile" - } - ] - } - ] - }, - "fenced_code_block_perl": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl|pl|pm|pod|t|PL|psgi|vcl)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.perl", - "patterns": [ - { - "include": "source.perl" - } - ] - } - ] - }, - "fenced_code_block_r": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(R|r|s|S|Rprofile|\\{\\.r.+?\\})((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.r", - "patterns": [ - { - "include": "source.r" - } - ] - } - ] - }, - "fenced_code_block_ruby": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(ruby|rb|rbx|rjs|Rakefile|rake|cgi|fcgi|gemspec|irbrc|Capfile|ru|prawn|Cheffile|Gemfile|Guardfile|Hobofile|Vagrantfile|Appraisals|Rantfile|Berksfile|Berksfile.lock|Thorfile|Puppetfile)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.ruby", - "patterns": [ - { - "include": "source.ruby" - } - ] - } - ] - }, - "fenced_code_block_php": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(php|php3|php4|php5|phpt|phtml|aw|ctp)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.php", - "patterns": [ - { - "include": "text.html.basic" - }, - { - "include": "source.php" - } - ] - } - ] - }, - "fenced_code_block_sql": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(sql|ddl|dml)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.sql", - "patterns": [ - { - "include": "source.sql" - } - ] - } - ] - }, - "fenced_code_block_vs_net": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(vb)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.vs_net", - "patterns": [ - { - "include": "source.asp.vb.net" - } - ] - } - ] - }, - "fenced_code_block_xml": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xml|xsd|tld|jsp|pt|cpt|dtml|rss|opml)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.xml", - "patterns": [ - { - "include": "text.xml" - } - ] - } - ] - }, - "fenced_code_block_xsl": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(xsl|xslt)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.xsl", - "patterns": [ - { - "include": "text.xml.xsl" - } - ] - } - ] - }, - "fenced_code_block_yaml": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(yaml|yml)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.yaml", - "patterns": [ - { - "include": "source.yaml" - } - ] - } - ] - }, - "fenced_code_block_dosbatch": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(bat|batch)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.dosbatch", - "patterns": [ - { - "include": "source.batchfile" - } - ] - } - ] - }, - "fenced_code_block_clojure": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(clj|cljs|clojure)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.clojure", - "patterns": [ - { - "include": "source.clojure" - } - ] - } - ] - }, - "fenced_code_block_coffee": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(coffee|Cakefile|coffee.erb)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.coffee", - "patterns": [ - { - "include": "source.coffee" - } - ] - } - ] - }, - "fenced_code_block_c": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(c|h)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.c", - "patterns": [ - { - "include": "source.c" - } - ] - } - ] - }, - "fenced_code_block_cpp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cpp|c\\+\\+|cxx)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.cpp source.cpp", - "patterns": [ - { - "include": "source.cpp" - } - ] - } - ] - }, - "fenced_code_block_diff": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(patch|diff|rej)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.diff", - "patterns": [ - { - "include": "source.diff" - } - ] - } - ] - }, - "fenced_code_block_dockerfile": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dockerfile|Dockerfile)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.dockerfile", - "patterns": [ - { - "include": "source.dockerfile" - } - ] - } - ] - }, - "fenced_code_block_git_commit": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(COMMIT_EDITMSG|MERGE_MSG)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.git_commit", - "patterns": [ - { - "include": "text.git-commit" - } - ] - } - ] - }, - "fenced_code_block_git_rebase": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(git-rebase-todo)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.git_rebase", - "patterns": [ - { - "include": "text.git-rebase" - } - ] - } - ] - }, - "fenced_code_block_go": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(go|golang)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.go", - "patterns": [ - { - "include": "source.go" - } - ] - } - ] - }, - "fenced_code_block_groovy": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(groovy|gvy)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.groovy", - "patterns": [ - { - "include": "source.groovy" - } - ] - } - ] - }, - "fenced_code_block_pug": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jade|pug)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.pug", - "patterns": [ - { - "include": "text.pug" - } - ] - } - ] - }, - "fenced_code_block_js": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(js|jsx|javascript|es6|mjs|cjs|\\{\\.js.+?\\})((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.javascript", - "patterns": [ - { - "include": "source.js" - } - ] - } - ] - }, - "fenced_code_block_js_regexp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(regexp)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.js_regexp", - "patterns": [ - { - "include": "source.js.regexp" - } - ] - } - ] - }, - "fenced_code_block_json": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(json|json5|sublime-settings|sublime-menu|sublime-keymap|sublime-mousemap|sublime-theme|sublime-build|sublime-project|sublime-completions)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.json", - "patterns": [ - { - "include": "source.json" - } - ] - } - ] - }, - "fenced_code_block_jsonc": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(jsonc)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.jsonc", - "patterns": [ - { - "include": "source.json.comments" - } - ] - } - ] - }, - "fenced_code_block_less": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(less)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.less", - "patterns": [ - { - "include": "source.css.less" - } - ] - } - ] - }, - "fenced_code_block_objc": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(objectivec|objective-c|mm|objc|obj-c|m|h)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.objc", - "patterns": [ - { - "include": "source.objc" - } - ] - } - ] - }, - "fenced_code_block_swift": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(swift)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.swift", - "patterns": [ - { - "include": "source.swift" - } - ] - } - ] - }, - "fenced_code_block_scss": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scss)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.scss", - "patterns": [ - { - "include": "source.css.scss" - } - ] - } - ] - }, - "fenced_code_block_perl6": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(perl6|p6|pl6|pm6|nqp)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.perl6", - "patterns": [ - { - "include": "source.perl.6" - } - ] - } - ] - }, - "fenced_code_block_powershell": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(powershell|ps1|psm1|psd1)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.powershell", - "patterns": [ - { - "include": "source.powershell" - } - ] - } - ] - }, - "fenced_code_block_python": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(python|py|py3|rpy|pyw|cpy|SConstruct|Sconstruct|sconstruct|SConscript|gyp|gypi|\\{\\.python.+?\\})((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.python", - "patterns": [ - { - "include": "source.python" - } - ] - } - ] - }, - "fenced_code_block_regexp_python": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(re)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.regexp_python", - "patterns": [ - { - "include": "source.regexp.python" - } - ] - } - ] - }, - "fenced_code_block_rust": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(rust|rs|\\{\\.rust.+?\\})((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.rust", - "patterns": [ - { - "include": "source.rust" - } - ] - } - ] - }, - "fenced_code_block_scala": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(scala|sbt)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.scala", - "patterns": [ - { - "include": "source.scala" - } - ] - } - ] - }, - "fenced_code_block_shell": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(shell|sh|bash|zsh|bashrc|bash_profile|bash_login|profile|bash_logout|.textmate_init|\\{\\.bash.+?\\})((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.shellscript", - "patterns": [ - { - "include": "source.shell" - } - ] - } - ] - }, - "fenced_code_block_ts": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(typescript|ts)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.typescript", - "patterns": [ - { - "include": "source.ts" - } - ] - } - ] - }, - "fenced_code_block_tsx": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(tsx)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.typescriptreact", - "patterns": [ - { - "include": "source.tsx" - } - ] - } - ] - }, - "fenced_code_block_csharp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(cs|csharp|c#)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.csharp", - "patterns": [ - { - "include": "source.cs" - } - ] - } - ] - }, - "fenced_code_block_fsharp": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(fs|fsharp|f#)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.fsharp", - "patterns": [ - { - "include": "source.fsharp" - } - ] - } - ] - }, - "fenced_code_block_dart": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(dart)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.dart", - "patterns": [ - { - "include": "source.dart" - } - ] - } - ] - }, - "fenced_code_block_handlebars": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(handlebars|hbs)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.handlebars", - "patterns": [ - { - "include": "text.html.handlebars" - } - ] - } - ] - }, - "fenced_code_block_markdown": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(markdown|md)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.markdown", - "patterns": [ - { - "include": "text.html.markdown" - } - ] - } - ] - }, - "fenced_code_block_log": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(log)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.log", - "patterns": [ - { - "include": "text.log" - } - ] - } - ] - }, - "fenced_code_block_erlang": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(erlang)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.erlang", - "patterns": [ - { - "include": "source.erlang" - } - ] - } - ] - }, - "fenced_code_block_elixir": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?i:(elixir)((\\s+|:|\\{)[^`~]*)?$)", - "name": "markup.fenced_code.block.markdown", - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language.markdown" - }, - "5": { - "name": "fenced_code.block.language.attributes.markdown" - } - }, - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "patterns": [ - { - "begin": "(^|\\G)(\\s*)(.*)", - "while": "(^|\\G)(?!\\s*([`~]{3,})\\s*$)", - "contentName": "meta.embedded.block.elixir", - "patterns": [ - { - "include": "source.elixir" - } - ] - } - ] - }, - "fenced_code_block": { - "patterns": [ - { - "include": "#fenced_code_block_css" - }, - { - "include": "#fenced_code_block_basic" - }, - { - "include": "#fenced_code_block_ini" - }, - { - "include": "#fenced_code_block_java" - }, - { - "include": "#fenced_code_block_lua" - }, - { - "include": "#fenced_code_block_makefile" - }, - { - "include": "#fenced_code_block_perl" - }, - { - "include": "#fenced_code_block_r" - }, - { - "include": "#fenced_code_block_ruby" - }, - { - "include": "#fenced_code_block_php" - }, - { - "include": "#fenced_code_block_sql" - }, - { - "include": "#fenced_code_block_vs_net" - }, - { - "include": "#fenced_code_block_xml" - }, - { - "include": "#fenced_code_block_xsl" - }, - { - "include": "#fenced_code_block_yaml" - }, - { - "include": "#fenced_code_block_dosbatch" - }, - { - "include": "#fenced_code_block_clojure" - }, - { - "include": "#fenced_code_block_coffee" - }, - { - "include": "#fenced_code_block_c" - }, - { - "include": "#fenced_code_block_cpp" - }, - { - "include": "#fenced_code_block_diff" - }, - { - "include": "#fenced_code_block_dockerfile" - }, - { - "include": "#fenced_code_block_git_commit" - }, - { - "include": "#fenced_code_block_git_rebase" - }, - { - "include": "#fenced_code_block_go" - }, - { - "include": "#fenced_code_block_groovy" - }, - { - "include": "#fenced_code_block_pug" - }, - { - "include": "#fenced_code_block_js" - }, - { - "include": "#fenced_code_block_js_regexp" - }, - { - "include": "#fenced_code_block_json" - }, - { - "include": "#fenced_code_block_jsonc" - }, - { - "include": "#fenced_code_block_less" - }, - { - "include": "#fenced_code_block_objc" - }, - { - "include": "#fenced_code_block_swift" - }, - { - "include": "#fenced_code_block_scss" - }, - { - "include": "#fenced_code_block_perl6" - }, - { - "include": "#fenced_code_block_powershell" - }, - { - "include": "#fenced_code_block_python" - }, - { - "include": "#fenced_code_block_regexp_python" - }, - { - "include": "#fenced_code_block_rust" - }, - { - "include": "#fenced_code_block_scala" - }, - { - "include": "#fenced_code_block_shell" - }, - { - "include": "#fenced_code_block_ts" - }, - { - "include": "#fenced_code_block_tsx" - }, - { - "include": "#fenced_code_block_csharp" - }, - { - "include": "#fenced_code_block_fsharp" - }, - { - "include": "#fenced_code_block_dart" - }, - { - "include": "#fenced_code_block_handlebars" - }, - { - "include": "#fenced_code_block_markdown" - }, - { - "include": "#fenced_code_block_log" - }, - { - "include": "#fenced_code_block_erlang" - }, - { - "include": "#fenced_code_block_elixir" - }, - { - "include": "#fenced_code_block_unknown" - } - ] - }, - "fenced_code_block_unknown": { - "begin": "(^|\\G)(\\s*)(`{3,}|~{3,})\\s*(?=([^`~]*)?$)", - "beginCaptures": { - "3": { - "name": "punctuation.definition.markdown" - }, - "4": { - "name": "fenced_code.block.language" - } - }, - "end": "(^|\\G)(\\2|\\s{0,3})(\\3)\\s*$", - "endCaptures": { - "3": { - "name": "punctuation.definition.markdown" - } - }, - "name": "markup.fenced_code.block.markdown" - }, - "heading": { - "match": "(?:^|\\G)[ ]{0,3}(#{1,6}\\s+(.*?)(\\s+#{1,6})?\\s*)$", - "captures": { - "1": { - "patterns": [ - { - "match": "(#{6})\\s+(.*?)(?:\\s+(#+))?\\s*$", - "name": "heading.6.markdown", - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - }, - "2": { - "name": "entity.name.section.markdown" - }, - "3": { - "name": "punctuation.definition.heading.markdown" - } - } - }, - { - "match": "(#{5})\\s+(.*?)(?:\\s+(#+))?\\s*$", - "name": "heading.5.markdown", - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - }, - "2": { - "name": "entity.name.section.markdown" - }, - "3": { - "name": "punctuation.definition.heading.markdown" - } - } - }, - { - "match": "(#{4})\\s+(.*?)(?:\\s+(#+))?\\s*$", - "name": "heading.4.markdown", - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - }, - "2": { - "name": "entity.name.section.markdown" - }, - "3": { - "name": "punctuation.definition.heading.markdown" - } - } - }, - { - "match": "(#{3})\\s+(.*?)(?:\\s+(#+))?\\s*$", - "name": "heading.3.markdown", - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - }, - "2": { - "name": "entity.name.section.markdown" - }, - "3": { - "name": "punctuation.definition.heading.markdown" - } - } - }, - { - "match": "(#{2})\\s+(.*?)(?:\\s+(#+))?\\s*$", - "name": "heading.2.markdown", - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - }, - "2": { - "name": "entity.name.section.markdown" - }, - "3": { - "name": "punctuation.definition.heading.markdown" - } - } - }, - { - "match": "(#{1})\\s+(.*?)(?:\\s+(#+))?\\s*$", - "name": "heading.1.markdown", - "captures": { - "1": { - "name": "punctuation.definition.heading.markdown" - }, - "2": { - "name": "entity.name.section.markdown" - }, - "3": { - "name": "punctuation.definition.heading.markdown" - } - } - } - ] - } - }, - "name": "markup.heading.markdown", - "patterns": [ - { - "include": "#inline" - } - ] - }, - "heading-setext": { - "patterns": [ - { - "match": "^(={3,})(?=[ \\t]*$\\n?)", - "name": "markup.heading.setext.1.markdown" - }, - { - "match": "^(-{3,})(?=[ \\t]*$\\n?)", - "name": "markup.heading.setext.2.markdown" - } - ] - }, - "html": { - "patterns": [ - { - "begin": "(^|\\G)\\s*()", - "name": "comment.block.html" - }, - { - "begin": "(?i)(^|\\G)\\s*(?=<(script|style|pre)(\\s|$|>)(?!.*?))", - "end": "(?i)(.*)(())", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "text.html.derivative" - } - ] - }, - "2": { - "name": "meta.tag.structure.$4.end.html" - }, - "3": { - "name": "punctuation.definition.tag.begin.html" - }, - "4": { - "name": "entity.name.tag.html" - }, - "5": { - "name": "punctuation.definition.tag.end.html" - } - }, - "patterns": [ - { - "begin": "(\\s*|$)", - "patterns": [ - { - "include": "text.html.derivative" - } - ], - "while": "(?i)^(?!.*)" - } - ] - }, - { - "begin": "(?i)(^|\\G)\\s*(?=))", - "patterns": [ - { - "include": "text.html.derivative" - } - ], - "while": "^(?!\\s*$)" - }, - { - "begin": "(^|\\G)\\s*(?=(<[a-zA-Z0-9\\-](/?>|\\s.*?>)|)\\s*$)", - "patterns": [ - { - "include": "text.html.derivative" - } - ], - "while": "^(?!\\s*$)" - } - ] - }, - "link-def": { - "captures": { - "1": { - "name": "punctuation.definition.constant.markdown" - }, - "2": { - "name": "constant.other.reference.link.markdown" - }, - "3": { - "name": "punctuation.definition.constant.markdown" - }, - "4": { - "name": "punctuation.separator.key-value.markdown" - }, - "5": { - "name": "punctuation.definition.link.markdown" - }, - "6": { - "name": "markup.underline.link.markdown" - }, - "7": { - "name": "punctuation.definition.link.markdown" - }, - "8": { - "name": "string.other.link.description.title.markdown" - }, - "9": { - "name": "punctuation.definition.string.begin.markdown" - }, - "10": { - "name": "punctuation.definition.string.end.markdown" - }, - "11": { - "name": "string.other.link.description.title.markdown" - }, - "12": { - "name": "punctuation.definition.string.begin.markdown" - }, - "13": { - "name": "punctuation.definition.string.end.markdown" - }, - "14": { - "name": "string.other.link.description.title.markdown" - }, - "15": { - "name": "punctuation.definition.string.begin.markdown" - }, - "16": { - "name": "punctuation.definition.string.end.markdown" - } - }, - "match": "(?x)\n \\s* # Leading whitespace\n (\\[)([^]]+?)(\\])(:) # Reference name\n [ \\t]* # Optional whitespace\n (?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n $\n", - "name": "meta.link.reference.def.markdown" - }, - "list_paragraph": { - "begin": "(^|\\G)(?=\\S)(?![*+->]\\s|[0-9]+\\.\\s)", - "name": "meta.paragraph.markdown", - "patterns": [ - { - "include": "#inline" - }, - { - "include": "text.html.derivative" - }, - { - "include": "#heading-setext" - } - ], - "while": "(^|\\G)(?!\\s*$|#|[ ]{0,3}([-*_>][ ]{2,}){3,}[ \\t]*$\\n?|[ ]{0,3}[*+->]|[ ]{0,3}[0-9]+\\.)" - }, - "lists": { - "patterns": [ - { - "begin": "(^|\\G)([ ]{0,3})([*+-])([ \\t])", - "beginCaptures": { - "3": { - "name": "punctuation.definition.list.begin.markdown" - } - }, - "comment": "Currently does not support un-indented second lines.", - "name": "markup.list.unnumbered.markdown", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#list_paragraph" - } - ], - "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" - }, - { - "begin": "(^|\\G)([ ]{0,3})([0-9]+\\.)([ \\t])", - "beginCaptures": { - "3": { - "name": "punctuation.definition.list.begin.markdown" - } - }, - "name": "markup.list.numbered.markdown", - "patterns": [ - { - "include": "#block" - }, - { - "include": "#list_paragraph" - } - ], - "while": "((^|\\G)([ ]{2,4}|\\t))|(^[ \\t]*$)" - } - ] - }, - "paragraph": { - "begin": "(^|\\G)[ ]{0,3}(?=\\S)", - "name": "meta.paragraph.markdown", - "patterns": [ - { - "include": "#inline" - }, - { - "include": "text.html.derivative" - }, - { - "include": "#heading-setext" - } - ], - "while": "(^|\\G)((?=\\s*[-=]{3,}\\s*$)|[ ]{4,}(?=\\S))" - }, - "raw_block": { - "begin": "(^|\\G)([ ]{4}|\\t)", - "name": "markup.raw.block.markdown", - "while": "(^|\\G)([ ]{4}|\\t)" - }, - "separator": { - "match": "(^|\\G)[ ]{0,3}([\\*\\-\\_])([ ]{0,2}\\2){2,}[ \\t]*$\\n?", - "name": "meta.separator.markdown" - }, - "frontMatter": { - "begin": "\\A-{3}\\s*$", - "contentName": "meta.embedded.block.frontmatter", - "patterns": [ - { - "include": "source.yaml" - } - ], - "end": "(^|\\G)-{3}|\\.{3}\\s*$" - }, - "inline": { - "patterns": [ - { - "include": "#ampersand" - }, - { - "include": "#bracket" - }, - { - "include": "#bold" - }, - { - "include": "#italic" - }, - { - "include": "#raw" - }, - { - "include": "#escape" - }, - { - "include": "#image-inline" - }, - { - "include": "#image-ref" - }, - { - "include": "#link-email" - }, - { - "include": "#link-inet" - }, - { - "include": "#link-inline" - }, - { - "include": "#link-ref" - }, - { - "include": "#link-ref-literal" - }, - { - "include": "#link-ref-shortcut" - } - ] - }, - "ampersand": { - "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", - "match": "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)", - "name": "meta.other.valid-ampersand.markdown" - }, - "bold": { - "begin": "(?x) (?(\\*\\*(?=\\w)|(?]*+> # HTML tags\n | (?`+)([^`]|(?!(?(?!`))`)*+\\k\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (? # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whitespace\n ? # URL\n [ \\t]*+ # Optional whitespace\n ( # Optional Title\n (?['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=__\\b|\\*\\*)\\k<open> # Close\n)\n", - "captures": { - "1": { - "name": "punctuation.definition.bold.markdown" - } - }, - "end": "(?<=\\S)(\\1)", - "name": "markup.bold.markdown", - "patterns": [ - { - "applyEndPatternLast": 1, - "begin": "(?=<[^>]*?>)", - "end": "(?<=>)", - "patterns": [ - { - "include": "text.html.derivative" - } - ] - }, - { - "include": "#escape" - }, - { - "include": "#ampersand" - }, - { - "include": "#bracket" - }, - { - "include": "#raw" - }, - { - "include": "#bold" - }, - { - "include": "#italic" - }, - { - "include": "#image-inline" - }, - { - "include": "#link-inline" - }, - { - "include": "#link-inet" - }, - { - "include": "#link-email" - }, - { - "include": "#image-ref" - }, - { - "include": "#link-ref-literal" - }, - { - "include": "#link-ref" - }, - { - "include": "#link-ref-shortcut" - } - ] - }, - "bracket": { - "comment": "Markdown will convert this for us. We match it so that the HTML grammar will not mark it up as invalid.", - "match": "<(?![a-zA-Z/?\\$!])", - "name": "meta.other.valid-bracket.markdown" - }, - "escape": { - "match": "\\\\[-`*_#+.!(){}\\[\\]\\\\>]", - "name": "constant.character.escape.markdown" - }, - "image-inline": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.description.markdown" - }, - "4": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "punctuation.definition.metadata.markdown" - }, - "6": { - "name": "punctuation.definition.link.markdown" - }, - "7": { - "name": "markup.underline.link.image.markdown" - }, - "8": { - "name": "punctuation.definition.link.markdown" - }, - "9": { - "name": "string.other.link.description.title.markdown" - }, - "10": { - "name": "punctuation.definition.string.markdown" - }, - "11": { - "name": "punctuation.definition.string.markdown" - }, - "12": { - "name": "string.other.link.description.title.markdown" - }, - "13": { - "name": "punctuation.definition.string.markdown" - }, - "14": { - "name": "punctuation.definition.string.markdown" - }, - "15": { - "name": "string.other.link.description.title.markdown" - }, - "16": { - "name": "punctuation.definition.string.markdown" - }, - "17": { - "name": "punctuation.definition.string.markdown" - }, - "18": { - "name": "punctuation.definition.metadata.markdown" - } - }, - "match": "(?x)\n (\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n (<?)(\\S+?)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n", - "name": "meta.image.inline.markdown" - }, - "image-ref": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.description.markdown" - }, - "4": { - "name": "punctuation.definition.string.begin.markdown" - }, - "5": { - "name": "punctuation.definition.constant.markdown" - }, - "6": { - "name": "constant.other.reference.link.markdown" - }, - "7": { - "name": "punctuation.definition.constant.markdown" - } - }, - "match": "(\\!\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(.*?)(\\])", - "name": "meta.image.reference.markdown" - }, - "italic": { - "begin": "(?x) (?<open>(\\*(?=\\w)|(?<!\\w)\\*|(?<!\\w)\\b_))(?=\\S) # Open\n (?=\n (\n <[^>]*+> # HTML tags\n | (?<raw>`+)([^`]|(?!(?<!`)\\k<raw>(?!`))`)*+\\k<raw>\n # Raw\n | \\\\[\\\\`*_{}\\[\\]()#.!+\\->]?+ # Escapes\n | \\[\n (\n (?<square> # Named group\n [^\\[\\]\\\\] # Match most chars\n | \\\\. # Escaped chars\n | \\[ \\g<square>*+ \\] # Nested brackets\n )*+\n \\]\n (\n ( # Reference Link\n [ ]? # Optional space\n \\[[^\\]]*+\\] # Ref name\n )\n | ( # Inline Link\n \\( # Opening paren\n [ \\t]*+ # Optional whtiespace\n <?(.*?)>? # URL\n [ \\t]*+ # Optional whtiespace\n ( # Optional Title\n (?<title>['\"])\n (.*?)\n \\k<title>\n )?\n \\)\n )\n )\n )\n | \\k<open>\\k<open> # Must be bold closer\n | (?!(?<=\\S)\\k<open>). # Everything besides\n # style closer\n )++\n (?<=\\S)(?=_\\b|\\*)\\k<open> # Close\n )\n", - "captures": { - "1": { - "name": "punctuation.definition.italic.markdown" - } - }, - "end": "(?<=\\S)(\\1)((?!\\1)|(?=\\1\\1))", - "name": "markup.italic.markdown", - "patterns": [ - { - "applyEndPatternLast": 1, - "begin": "(?=<[^>]*?>)", - "end": "(?<=>)", - "patterns": [ - { - "include": "text.html.derivative" - } - ] - }, - { - "include": "#escape" - }, - { - "include": "#ampersand" - }, - { - "include": "#bracket" - }, - { - "include": "#raw" - }, - { - "include": "#bold" - }, - { - "include": "#image-inline" - }, - { - "include": "#link-inline" - }, - { - "include": "#link-inet" - }, - { - "include": "#link-email" - }, - { - "include": "#image-ref" - }, - { - "include": "#link-ref-literal" - }, - { - "include": "#link-ref" - }, - { - "include": "#link-ref-shortcut" - } - ] - }, - "link-email": { - "captures": { - "1": { - "name": "punctuation.definition.link.markdown" - }, - "2": { - "name": "markup.underline.link.markdown" - }, - "4": { - "name": "punctuation.definition.link.markdown" - } - }, - "match": "(<)((?:mailto:)?[a-zA-Z0-9.!#$%&'*+/=?^_`{|}~-]+@[a-zA-Z0-9-]+(?:\\.[a-zA-Z0-9-]+)*)(>)", - "name": "meta.link.email.lt-gt.markdown" - }, - "link-inet": { - "captures": { - "1": { - "name": "punctuation.definition.link.markdown" - }, - "2": { - "name": "markup.underline.link.markdown" - }, - "3": { - "name": "punctuation.definition.link.markdown" - } - }, - "match": "(<)((?:https?|ftp)://.*?)(>)", - "name": "meta.link.inet.markdown" - }, - "link-inline": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "4": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "punctuation.definition.metadata.markdown" - }, - "6": { - "name": "punctuation.definition.link.markdown" - }, - "7": { - "name": "markup.underline.link.markdown" - }, - "9": { - "name": "punctuation.definition.link.markdown" - }, - "10": { - "name": "string.other.link.description.title.markdown" - }, - "11": { - "name": "punctuation.definition.string.begin.markdown" - }, - "12": { - "name": "punctuation.definition.string.end.markdown" - }, - "13": { - "name": "string.other.link.description.title.markdown" - }, - "14": { - "name": "punctuation.definition.string.begin.markdown" - }, - "15": { - "name": "punctuation.definition.string.end.markdown" - }, - "16": { - "name": "string.other.link.description.title.markdown" - }, - "17": { - "name": "punctuation.definition.string.begin.markdown" - }, - "18": { - "name": "punctuation.definition.string.end.markdown" - }, - "19": { - "name": "punctuation.definition.metadata.markdown" - } - }, - "match": "(?x)\n (\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\n # Match the link text.\n (\\() # Opening paren for url\n (<?)((?<url>(?>[^\\s()]+)|\\(\\g<url>*\\))*)(>?) # The url\n [ \\t]* # Optional whitespace\n (?:\n ((\\().+?(\\))) # Match title in parens…\n | ((\").+?(\")) # or in double quotes…\n | ((').+?(')) # or in single quotes.\n )? # Title is optional\n \\s* # Optional whitespace\n (\\))\n", - "name": "meta.link.inline.markdown" - }, - "link-ref": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "4": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "punctuation.definition.constant.begin.markdown" - }, - "6": { - "name": "constant.other.reference.link.markdown" - }, - "7": { - "name": "punctuation.definition.constant.end.markdown" - } - }, - "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])(\\[)([^\\]]*+)(\\])", - "name": "meta.link.reference.markdown" - }, - "link-ref-literal": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "4": { - "name": "punctuation.definition.string.end.markdown" - }, - "5": { - "name": "punctuation.definition.constant.begin.markdown" - }, - "6": { - "name": "punctuation.definition.constant.end.markdown" - } - }, - "match": "(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])[ ]?(\\[)(\\])", - "name": "meta.link.reference.literal.markdown" - }, - "link-ref-shortcut": { - "captures": { - "1": { - "name": "punctuation.definition.string.begin.markdown" - }, - "2": { - "name": "string.other.link.title.markdown" - }, - "3": { - "name": "punctuation.definition.string.end.markdown" - } - }, - "match": "(\\[)(\\S+?)(\\])", - "name": "meta.link.reference.markdown" - }, - "raw": { - "captures": { - "1": { - "name": "punctuation.definition.raw.markdown" - }, - "3": { - "name": "punctuation.definition.raw.markdown" - } - }, - "match": "(`+)([^`]|(?!(?<!`)\\1(?!`))`)*+(\\1)", - "name": "markup.inline.raw.string.markdown" - } - } -} \ No newline at end of file diff --git a/extensions/markdown-basics/test/colorize-fixtures/test-33886.md b/extensions/markdown-basics/test/colorize-fixtures/test-33886.md deleted file mode 100644 index 472c4a76498..00000000000 --- a/extensions/markdown-basics/test/colorize-fixtures/test-33886.md +++ /dev/null @@ -1,13 +0,0 @@ -# h - -<pre><code> -# a -</code></pre> - -# h - -<pre> -# a -a</pre> - -# h \ No newline at end of file diff --git a/extensions/markdown-basics/test/colorize-fixtures/test.md b/extensions/markdown-basics/test/colorize-fixtures/test.md deleted file mode 100644 index 28f3590536e..00000000000 --- a/extensions/markdown-basics/test/colorize-fixtures/test.md +++ /dev/null @@ -1,106 +0,0 @@ -# Header 1 # -## Header 2 ## -### Header 3 ### (Hashes on right are optional) -## Markdown plus h2 with a custom ID ## {#id-goes-here} -[Link back to H2](#id-goes-here) - -### Alternate heading styles: -Alternate Header 1 -================== -Alternate Header 2 ------------------- - -<!-- html madness --> -<div class="custom-class" markdown="1"> - <div> - nested div - </div> - <script type='text/x-koka'> - function( x: int ) { return x*x; } - </script> - This is a div _with_ underscores - and a & <b class="bold">bold</b> element. - <style> - body { font: "Consolas" } - </style> -</div> - -* Bullet lists are easy too -- Another one -+ Another one - - + nested list - -This is a paragraph, which is text surrounded by -whitespace. Paragraphs can be on one -line (or many), and can drone on for hours. - -Now some inline markup like _italics_, **bold**, -and `code()`. Note that underscores -in_words_are ignored. - -````application/json - { value: ["or with a mime type"] } -```` - -> Blockquotes are like quoted text in email replies ->> And, they can be nested - -1. A numbered list - > Block quotes in list -2. Which is numbered -3. With periods and a space - -And now some code: - - // Code is just text indented a bit - which(is_easy) to_remember(); - -And a block - -~~~ -// Markdown extra adds un-indented code blocks too - -if (this_is_more_code == true && !indented) { - // tild wrapped code blocks, also not indented -} -~~~ - -Text with -two trailing spaces -(on the right) -can be used -for things like poems - -### Horizontal rules - -* * * * -**** --------------------------- - -![picture alt](/images/photo.jpeg "Title is optional") - -## Markdown plus tables ## - -| Header | Header | Right | -| ------ | ------ | -----: | -| Cell | Cell | $10 | -| Cell | Cell | $20 | - -* Outer pipes on tables are optional -* Colon used for alignment (right versus left) - -## Markdown plus definition lists ## - -Bottled water -: $ 1.25 -: $ 1.55 (Large) - -Milk -Pop -: $ 1.75 - -* Multiple definitions and terms are possible -* Definitions can include multiple paragraphs too - -*[ABBR]: Markdown plus abbreviations (produces an <abbr> tag) \ No newline at end of file diff --git a/extensions/markdown-basics/test/colorize-results/test-33886_md.json b/extensions/markdown-basics/test/colorize-results/test-33886_md.json deleted file mode 100644 index 25799e89a36..00000000000 --- a/extensions/markdown-basics/test/colorize-results/test-33886_md.json +++ /dev/null @@ -1,332 +0,0 @@ -[ - { - "c": "#", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "h", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.tag.structure.pre.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "pre", - "t": "text.html.markdown meta.tag.structure.pre.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.pre.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.tag.inline.code.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "code", - "t": "text.html.markdown meta.tag.inline.code.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.inline.code.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "# a", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "</", - "t": "text.html.markdown meta.tag.inline.code.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "code", - "t": "text.html.markdown meta.tag.inline.code.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.inline.code.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "</", - "t": "text.html.markdown meta.tag.structure.pre.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "pre", - "t": "text.html.markdown meta.tag.structure.pre.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.pre.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "#", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "h", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.tag.structure.pre.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "pre", - "t": "text.html.markdown meta.tag.structure.pre.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.pre.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "# a", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "</", - "t": "text.html.markdown meta.tag.structure.pre.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "pre", - "t": "text.html.markdown meta.tag.structure.pre.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.pre.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "#", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "h", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - } -] \ No newline at end of file diff --git a/extensions/markdown-basics/test/colorize-results/test_md.json b/extensions/markdown-basics/test/colorize-results/test_md.json deleted file mode 100644 index 1fee1287417..00000000000 --- a/extensions/markdown-basics/test/colorize-results/test_md.json +++ /dev/null @@ -1,2631 +0,0 @@ -[ - { - "c": "#", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Header 1", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "#", - "t": "text.html.markdown markup.heading.markdown heading.1.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "##", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Header 2", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "##", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "###", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Header 3 ### (Hashes on right are optional)", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "##", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Markdown plus h2 with a custom ID ## {#id-goes-here}", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "[", - "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.string.begin.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Link back to H2", - "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown string.other.link.title.markdown", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.string.end.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.metadata.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#id-goes-here", - "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown markup.underline.link.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "text.html.markdown meta.paragraph.markdown meta.link.inline.markdown punctuation.definition.metadata.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "###", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Alternate heading styles:", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Alternate Header 1", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==================", - "t": "text.html.markdown meta.paragraph.markdown markup.heading.setext.1.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Alternate Header 2", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "------------------", - "t": "text.html.markdown meta.paragraph.markdown markup.heading.setext.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "<!--", - "t": "text.html.markdown comment.block.html punctuation.definition.comment.html", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " html madness ", - "t": "text.html.markdown comment.block.html", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "-->", - "t": "text.html.markdown comment.block.html punctuation.definition.comment.html", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.markdown meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.tag.structure.div.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "custom-class", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.tag.structure.div.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "markdown", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.unrecognized.markdown.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.unrecognized.markdown.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.unrecognized.markdown.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "1", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.unrecognized.markdown.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.tag.structure.div.start.html meta.attribute.unrecognized.markdown.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.tag.structure.div.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.markdown meta.tag.structure.div.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.div.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " nested div", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "</", - "t": "text.html.markdown meta.tag.structure.div.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.markdown meta.tag.structure.div.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.markdown punctuation.whitespace.embedded.leading.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "'", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text/x-koka", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html meta.attribute.type.html string.quoted.single.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " function( x: int ) { return x*x; }", - "t": "text.html.markdown meta.embedded.block.html source.unknown", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html source.unknown", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "</", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " This is a div _with_ underscores", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " and a & ", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.tag.inline.b.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "b", - "t": "text.html.markdown meta.tag.inline.b.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.tag.inline.b.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "text.html.markdown meta.tag.inline.b.start.html meta.attribute.class.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.markdown meta.tag.inline.b.start.html meta.attribute.class.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.tag.inline.b.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "bold", - "t": "text.html.markdown meta.tag.inline.b.start.html meta.attribute.class.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.tag.inline.b.start.html meta.attribute.class.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.inline.b.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "bold", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "</", - "t": "text.html.markdown meta.tag.inline.b.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "b", - "t": "text.html.markdown meta.tag.inline.b.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.inline.b.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " element.", - "t": "text.html.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown punctuation.whitespace.embedded.leading.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.style.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "style", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.style.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.style.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html source.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "body", - "t": "text.html.markdown meta.embedded.block.html source.css meta.selector.css entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html source.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css punctuation.section.property-list.begin.bracket.curly.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "font", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css meta.property-name.css support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css punctuation.separator.key-value.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css meta.property-value.css string.quoted.double.css punctuation.definition.string.begin.css", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Consolas", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css meta.property-value.css string.quoted.double.css", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css meta.property-value.css string.quoted.double.css punctuation.definition.string.end.css", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.markdown meta.embedded.block.html source.css meta.property-list.css punctuation.section.property-list.end.bracket.curly.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.embedded.block.html source.css", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.begin.html source.css-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "style", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.style.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.embedded.block.html meta.tag.metadata.style.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "</", - "t": "text.html.markdown meta.tag.structure.div.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "div", - "t": "text.html.markdown meta.tag.structure.div.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.tag.structure.div.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "*", - "t": "text.html.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Bullet lists are easy too", - "t": "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "text.html.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Another one", - "t": "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "text.html.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Another one", - "t": "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "text.html.markdown markup.list.unnumbered.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nested list", - "t": "text.html.markdown markup.list.unnumbered.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "This is a paragraph, which is text surrounded by", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "whitespace. Paragraphs can be on one", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "line (or many), and can drone on for hours.", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Now some inline markup like ", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "_", - "t": "text.html.markdown meta.paragraph.markdown markup.italic.markdown punctuation.definition.italic.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "italics", - "t": "text.html.markdown meta.paragraph.markdown markup.italic.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "_", - "t": "text.html.markdown meta.paragraph.markdown markup.italic.markdown punctuation.definition.italic.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ", ", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "**", - "t": "text.html.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown", - "r": { - "dark_plus": "markup.bold: #569CD6", - "light_plus": "markup.bold: #000080", - "dark_vs": "markup.bold: #569CD6", - "light_vs": "markup.bold: #000080", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "bold", - "t": "text.html.markdown meta.paragraph.markdown markup.bold.markdown", - "r": { - "dark_plus": "markup.bold: #569CD6", - "light_plus": "markup.bold: #000080", - "dark_vs": "markup.bold: #569CD6", - "light_vs": "markup.bold: #000080", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "**", - "t": "text.html.markdown meta.paragraph.markdown markup.bold.markdown punctuation.definition.bold.markdown", - "r": { - "dark_plus": "markup.bold: #569CD6", - "light_plus": "markup.bold: #000080", - "dark_vs": "markup.bold: #569CD6", - "light_vs": "markup.bold: #000080", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "and ", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "`", - "t": "text.html.markdown meta.paragraph.markdown markup.inline.raw.string.markdown punctuation.definition.raw.markdown", - "r": { - "dark_plus": "markup.inline.raw: #CE9178", - "light_plus": "markup.inline.raw: #800000", - "dark_vs": "markup.inline.raw: #CE9178", - "light_vs": "markup.inline.raw: #800000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "code()", - "t": "text.html.markdown meta.paragraph.markdown markup.inline.raw.string.markdown", - "r": { - "dark_plus": "markup.inline.raw: #CE9178", - "light_plus": "markup.inline.raw: #800000", - "dark_vs": "markup.inline.raw: #CE9178", - "light_vs": "markup.inline.raw: #800000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "`", - "t": "text.html.markdown meta.paragraph.markdown markup.inline.raw.string.markdown punctuation.definition.raw.markdown", - "r": { - "dark_plus": "markup.inline.raw: #CE9178", - "light_plus": "markup.inline.raw: #800000", - "dark_vs": "markup.inline.raw: #CE9178", - "light_vs": "markup.inline.raw: #800000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ". Note that underscores", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in_words_are ignored.", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "````", - "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "application/json", - "t": "text.html.markdown markup.fenced_code.block.markdown fenced_code.block.language", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " { value: [\"or with a mime type\"] }", - "t": "text.html.markdown markup.fenced_code.block.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "````", - "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "text.html.markdown markup.quote.markdown punctuation.definition.quote.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_plus": "punctuation.definition.quote.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_vs": "punctuation.definition.quote.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.quote.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Blockquotes are like quoted text in email replies", - "t": "text.html.markdown markup.quote.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "text.html.markdown markup.quote.markdown punctuation.definition.quote.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_plus": "punctuation.definition.quote.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_vs": "punctuation.definition.quote.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "text.html.markdown markup.quote.markdown markup.quote.markdown punctuation.definition.quote.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_plus": "punctuation.definition.quote.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_vs": "punctuation.definition.quote.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.quote.markdown markup.quote.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "And, they can be nested", - "t": "text.html.markdown markup.quote.markdown markup.quote.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1.", - "t": "text.html.markdown markup.list.numbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.numbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A numbered list", - "t": "text.html.markdown markup.list.numbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.numbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "text.html.markdown markup.list.numbered.markdown markup.quote.markdown punctuation.definition.quote.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_plus": "punctuation.definition.quote.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.quote.begin.markdown: #6A9955", - "light_vs": "punctuation.definition.quote.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.numbered.markdown markup.quote.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Block quotes in list", - "t": "text.html.markdown markup.list.numbered.markdown markup.quote.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2.", - "t": "text.html.markdown markup.list.numbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.numbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Which is numbered", - "t": "text.html.markdown markup.list.numbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3.", - "t": "text.html.markdown markup.list.numbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.numbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "With periods and a space", - "t": "text.html.markdown markup.list.numbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "And now some code:", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " // Code is just text indented a bit", - "t": "text.html.markdown markup.raw.block.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " which(is_easy) to_remember();", - "t": "text.html.markdown markup.raw.block.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "And a block", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "~~~", - "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "// Markdown extra adds un-indented code blocks too", - "t": "text.html.markdown markup.fenced_code.block.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if (this_is_more_code == true && !indented) {", - "t": "text.html.markdown markup.fenced_code.block.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " // tild wrapped code blocks, also not indented", - "t": "text.html.markdown markup.fenced_code.block.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.markdown markup.fenced_code.block.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "~~~", - "t": "text.html.markdown markup.fenced_code.block.markdown punctuation.definition.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Text with", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "two trailing spaces", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(on the right)", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "can be used", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for things like poems", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "###", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Horizontal rules", - "t": "text.html.markdown markup.heading.markdown heading.3.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "* * * *", - "t": "text.html.markdown meta.separator.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "****", - "t": "text.html.markdown meta.separator.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "--------------------------", - "t": "text.html.markdown meta.separator.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "![", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown punctuation.definition.string.begin.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "picture alt", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown string.other.link.description.markdown", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown punctuation.definition.string.end.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown punctuation.definition.metadata.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/images/photo.jpeg", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown markup.underline.link.image.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown string.other.link.description.title.markdown punctuation.definition.string.markdown", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Title is optional", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown string.other.link.description.title.markdown", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown string.other.link.description.title.markdown punctuation.definition.string.markdown", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.markdown meta.paragraph.markdown meta.image.inline.markdown punctuation.definition.metadata.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "##", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Markdown plus tables", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "##", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "| Header | Header | Right |", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "| ------ | ------ | -----: |", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "| Cell | Cell | $10 |", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "| Cell | Cell | $20 |", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "text.html.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Outer pipes on tables are optional", - "t": "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "text.html.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Colon used for alignment (right versus left)", - "t": "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "##", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Markdown plus definition lists", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown entity.name.section.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "##", - "t": "text.html.markdown markup.heading.markdown heading.2.markdown punctuation.definition.heading.markdown", - "r": { - "dark_plus": "markup.heading: #569CD6", - "light_plus": "markup.heading: #800000", - "dark_vs": "markup.heading: #569CD6", - "light_vs": "markup.heading: #800000", - "hc_black": "markup.heading: #6796E6" - } - }, - { - "c": "Bottled water", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ": $ 1.25", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ": $ 1.55 (Large)", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Milk", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Pop", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ": $ 1.75", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "text.html.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Multiple definitions and terms are possible", - "t": "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "text.html.markdown markup.list.unnumbered.markdown punctuation.definition.list.begin.markdown", - "r": { - "dark_plus": "punctuation.definition.list.begin.markdown: #6796E6", - "light_plus": "punctuation.definition.list.begin.markdown: #0451A5", - "dark_vs": "punctuation.definition.list.begin.markdown: #6796E6", - "light_vs": "punctuation.definition.list.begin.markdown: #0451A5", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.markdown markup.list.unnumbered.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Definitions can include multiple paragraphs too", - "t": "text.html.markdown markup.list.unnumbered.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "text.html.markdown meta.paragraph.markdown meta.link.reference.markdown punctuation.definition.string.begin.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ABBR", - "t": "text.html.markdown meta.paragraph.markdown meta.link.reference.markdown string.other.link.title.markdown", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "text.html.markdown meta.paragraph.markdown meta.link.reference.markdown punctuation.definition.string.end.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ": Markdown plus abbreviations (produces an ", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.markdown meta.paragraph.markdown meta.tag.inline.abbr.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "abbr", - "t": "text.html.markdown meta.paragraph.markdown meta.tag.inline.abbr.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.markdown meta.paragraph.markdown meta.tag.inline.abbr.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " tag)", - "t": "text.html.markdown meta.paragraph.markdown", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/objective-c/.vscodeignore b/extensions/objective-c/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/objective-c/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/objective-c/build/update-grammars.js b/extensions/objective-c/build/update-grammars.js deleted file mode 100644 index 5518bbcb033..00000000000 --- a/extensions/objective-c/build/update-grammars.js +++ /dev/null @@ -1,11 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * 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('../../../build/npm/update-grammar'); - -updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/objc.tmLanguage.json', './syntaxes/objective-c.tmLanguage.json', undefined, 'master', 'source/languages/cpp'); -updateGrammar.update('jeff-hykin/cpp-textmate-grammar', '/syntaxes/objcpp.tmLanguage.json', './syntaxes/objective-c++.tmLanguage.json', undefined, 'master', 'source/languages/cpp'); - diff --git a/extensions/objective-c/cgmanifest.json b/extensions/objective-c/cgmanifest.json deleted file mode 100644 index 592ff960fb6..00000000000 --- a/extensions/objective-c/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "jeff-hykin/cpp-textmate-grammar", - "repositoryUrl": "https://github.com/jeff-hykin/cpp-textmate-grammar", - "commitHash": "bc7dedd28eebe52b374744d3fb34d77ff441569e" - } - }, - "license": "MIT", - "version": "1.12.11", - "description": "The files syntaxes/objective-c.tmLanguage.json and syntaxes/objective-c++.tmLanguage.json were derived from the language package https://github.com/jeff-hykin/cpp-textmate-grammar." - } - ], - "version": 1 -} diff --git a/extensions/objective-c/language-configuration.json b/extensions/objective-c/language-configuration.json deleted file mode 100644 index a81a8864a51..00000000000 --- a/extensions/objective-c/language-configuration.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ] -} diff --git a/extensions/objective-c/package.json b/extensions/objective-c/package.json deleted file mode 100644 index 657273ad283..00000000000 --- a/extensions/objective-c/package.json +++ /dev/null @@ -1,50 +0,0 @@ -{ - "name": "objective-c", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ./build/update-grammars.js" - }, - "contributes": { - "languages": [ - { - "id": "objective-c", - "extensions": [ - ".m" - ], - "aliases": [ - "Objective-C" - ], - "configuration": "./language-configuration.json" - }, - { - "id": "objective-cpp", - "extensions": [ - ".mm" - ], - "aliases": [ - "Objective-C++" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "objective-c", - "scopeName": "source.objc", - "path": "./syntaxes/objective-c.tmLanguage.json" - }, - { - "language": "objective-cpp", - "scopeName": "source.objcpp", - "path": "./syntaxes/objective-c++.tmLanguage.json" - } - ] - } -} \ No newline at end of file diff --git a/extensions/objective-c/package.nls.json b/extensions/objective-c/package.nls.json deleted file mode 100644 index 5bc51c5d049..00000000000 --- a/extensions/objective-c/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Objective-C Language Basics", - "description": "Provides syntax highlighting and bracket matching in Objective-C files." -} \ No newline at end of file diff --git a/extensions/objective-c/syntaxes/objective-c++.tmLanguage.json b/extensions/objective-c/syntaxes/objective-c++.tmLanguage.json deleted file mode 100644 index 473fd1e28b4..00000000000 --- a/extensions/objective-c/syntaxes/objective-c++.tmLanguage.json +++ /dev/null @@ -1,7098 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master//syntaxes/objcpp.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/bc7dedd28eebe52b374744d3fb34d77ff441569e", - "name": "Objective-C++", - "scopeName": "source.objcpp", - "patterns": [ - { - "include": "#cpp_lang" - }, - { - "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?", - "captures": { - "1": { - "name": "storage.type.objcpp" - }, - "2": { - "name": "punctuation.definition.storage.type.objcpp" - }, - "4": { - "name": "entity.name.type.objcpp" - }, - "6": { - "name": "punctuation.definition.entity.other.inherited-class.objcpp" - }, - "7": { - "name": "entity.other.inherited-class.objcpp" - }, - "8": { - "name": "meta.divider.objcpp" - }, - "9": { - "name": "meta.inherited-class.objcpp" - } - }, - "contentName": "meta.scope.interface.objcpp", - "end": "((@)end)\\b", - "name": "meta.interface-or-protocol.objcpp", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?", - "captures": { - "1": { - "name": "storage.type.objcpp" - }, - "2": { - "name": "punctuation.definition.storage.type.objcpp" - }, - "4": { - "name": "entity.name.type.objcpp" - }, - "5": { - "name": "entity.other.inherited-class.objcpp" - } - }, - "contentName": "meta.scope.implementation.objcpp", - "end": "((@)end)\\b", - "name": "meta.implementation.objcpp", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t", - "name": "constant.other.placeholder.objcpp" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "begin": "\\b(id)\\s*(?=<)", - "beginCaptures": { - "1": { - "name": "storage.type.objcpp" - } - }, - "end": "(?<=>)", - "name": "meta.id-with-protocol.objcpp", - "patterns": [ - { - "include": "#protocol_list" - } - ] - }, - { - "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b", - "name": "keyword.control.macro.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(try|catch|finally|throw)\\b", - "name": "keyword.control.exception.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(synchronized)\\b", - "name": "keyword.control.synchronize.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(required|optional)\\b", - "name": "keyword.control.protocol-specification.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(defs|encode)\\b", - "name": "keyword.other.objcpp" - }, - { - "match": "\\bid\\b", - "name": "storage.type.id.objcpp" - }, - { - "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b", - "name": "storage.type.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.storage.type.objcpp" - } - }, - "match": "(@)(class|protocol)\\b", - "name": "storage.type.objcpp" - }, - { - "begin": "((@)selector)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "storage.type.objcpp" - }, - "2": { - "name": "punctuation.definition.storage.type.objcpp" - }, - "3": { - "name": "punctuation.definition.storage.type.objcpp" - } - }, - "contentName": "meta.selector.method-name.objcpp", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.storage.type.objcpp" - } - }, - "name": "meta.selector.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\b(?:[a-zA-Z_:][\\w]*)+", - "name": "support.function.any-method.name-of-parameter.objcpp" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.storage.modifier.objcpp" - } - }, - "match": "(@)(synchronized|public|package|private|protected)\\b", - "name": "storage.modifier.objcpp" - }, - { - "match": "\\b(YES|NO|Nil|nil)\\b", - "name": "constant.language.objcpp" - }, - { - "match": "\\bNSApp\\b", - "name": "support.variable.foundation.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.cocoa.leopard.objcpp" - }, - "2": { - "name": "support.function.cocoa.leopard.objcpp" - } - }, - "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.cocoa.objcpp" - }, - "2": { - "name": "support.function.cocoa.objcpp" - } - }, - "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b" - }, - { - "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b", - "name": "support.class.cocoa.leopard.objcpp" - }, - { - "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b", - "name": "support.class.cocoa.objcpp" - }, - { - "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b", - "name": "support.type.cocoa.leopard.objcpp" - }, - { - "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b", - "name": "support.class.quartz.objcpp" - }, - { - "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b", - "name": "support.type.quartz.objcpp" - }, - { - "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b", - "name": "support.type.cocoa.objcpp" - }, - { - "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b", - "name": "support.constant.cocoa.objcpp" - }, - { - "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b", - "name": "support.constant.notification.cocoa.leopard.objcpp" - }, - { - "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b", - "name": "support.constant.notification.cocoa.objcpp" - }, - { - "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b", - "name": "support.constant.cocoa.leopard.objcpp" - }, - { - "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b", - "name": "support.constant.cocoa.objcpp" - }, - { - "include": "#c_lang" - }, - { - "include": "#bracketed_content" - } - ], - "repository": { - "bracketed_content": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.objcpp" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.objcpp" - } - }, - "name": "meta.bracketed.objcpp", - "patterns": [ - { - "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.predicate.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\bargument(Array|s)(:)", - "name": "support.function.any-method.name-of-parameter.objcpp" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\b\\w+(:)", - "name": "invalid.illegal.unknown-method.objcpp" - }, - { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "match": "\\b(AND|OR|NOT|IN)\\b", - "name": "keyword.operator.logical.predicate.cocoa.objcpp" - }, - { - "match": "\\b(ALL|ANY|SOME|NONE)\\b", - "name": "constant.language.predicate.cocoa.objcpp" - }, - { - "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b", - "name": "constant.language.predicate.cocoa.objcpp" - }, - { - "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b", - "name": "keyword.operator.comparison.predicate.cocoa.objcpp" - }, - { - "match": "\\bC(ASEINSENSITIVE|I)\\b", - "name": "keyword.other.modifier.predicate.cocoa.objcpp" - }, - { - "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b", - "name": "keyword.other.predicate.cocoa.objcpp" - }, - { - "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objcpp" - } - }, - "match": "\\b\\w+(:)", - "name": "support.function.any-method.name-of-parameter.objcpp" - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$self" - } - ] - }, - "c_functions": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.objcpp" - }, - "2": { - "name": "support.function.C99.objcpp" - } - }, - "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.function-call.leading.objcpp" - }, - "2": { - "name": "support.function.any-method.objcpp" - }, - "3": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()", - "name": "meta.function-call.objcpp" - } - ] - }, - "c_lang": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#comments" - }, - { - "include": "#switch_statement" - }, - { - "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", - "name": "keyword.control.objcpp" - }, - { - "include": "#storage_types" - }, - { - "match": "typedef", - "name": "keyword.other.typedef.objcpp" - }, - { - "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", - "name": "storage.modifier.objcpp" - }, - { - "match": "\\bk[A-Z]\\w*\\b", - "name": "constant.other.variable.mac-classic.objcpp" - }, - { - "match": "\\bg[A-Z]\\w*\\b", - "name": "variable.other.readwrite.global.mac-classic.objcpp" - }, - { - "match": "\\bs[A-Z]\\w*\\b", - "name": "variable.other.readwrite.static.mac-classic.objcpp" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objcpp" - }, - { - "include": "#operators" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "entity.name.function.preprocessor.objcpp" - }, - "5": { - "name": "punctuation.definition.parameters.begin.objcpp" - }, - "6": { - "name": "variable.parameter.preprocessor.objcpp" - }, - "8": { - "name": "punctuation.separator.parameters.objcpp" - }, - "9": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.diagnostic.objcpp", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?=\\s*\\n)", - "name": "string.unquoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments" - } - ] - } - ] - }, - { - "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.include.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.include.objcpp" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.other.lt-gt.include.objcpp" - } - ] - }, - { - "include": "#pragma-mark" - }, - { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*undef))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.undef.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*pragma))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.pragma.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.pragma.objcpp", - "patterns": [ - { - "include": "#strings" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.objcpp" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", - "name": "support.type.sys-types.objcpp" - }, - { - "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", - "name": "support.type.pthread.objcpp" - }, - { - "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", - "name": "support.type.stdint.objcpp" - }, - { - "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", - "name": "support.constant.mac-classic.objcpp" - }, - { - "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", - "name": "support.type.mac-classic.objcpp" - }, - { - "match": "\\b([A-Za-z0-9_]+_t)\\b", - "name": "support.type.posix-reserved.objcpp" - }, - { - "include": "#block" - }, - { - "include": "#parens" - }, - { - "name": "meta.function.objcpp", - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "#line_continuation_character" - }, - { - "name": "meta.bracket.square.access.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.object.objcpp" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.objcpp" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "name": "storage.modifier.array.bracket.square.objcpp", - "match": "\\[\\s*\\]" - }, - { - "match": ";", - "name": "punctuation.terminator.statement.objcpp" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.objcpp" - } - ], - "repository": { - "probably_a_parameter": { - "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", - "captures": { - "1": { - "name": "variable.parameter.probably.objcpp" - } - } - }, - "access-method": { - "name": "meta.function-call.member.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.object.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objcpp" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objcpp" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.object.objcpp" - }, - { - "name": "everything.else.objcpp", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.objcpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "block": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - }, - "block_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.objcpp", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.objcpp" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - { - "include": "#parens-block" - }, - { - "include": "$base" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.objcpp", - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "meta.toc-list.banner.block.objcpp" - } - }, - "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", - "name": "comment.block.objcpp" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.objcpp" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.objcpp" - } - }, - "name": "comment.block.objcpp" - }, - { - "captures": { - "1": { - "name": "meta.toc-list.banner.line.objcpp" - } - }, - "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.objcpp" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objcpp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "(?=\\n)", - "name": "comment.line.double-slash.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.objcpp" - } - } - } - ] - }, - "parens": { - "name": "meta.parens.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "$base" - } - ] - }, - "parens-block": { - "name": "meta.parens.block.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards" - }, - { - "match": "(?-mix:(?<!:):(?!:))", - "name": "punctuation.range-based.objcpp" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.pragma.objcpp" - }, - "2": { - "name": "keyword.control.directive.pragma.pragma-mark.objcpp" - }, - "3": { - "name": "punctuation.definition.directive.objcpp" - }, - "4": { - "name": "entity.name.tag.pragma-mark.objcpp" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objcpp" - }, - "operators": { - "patterns": [ - { - "match": "(?<![\\w$])(sizeof)(?![\\w$])", - "name": "keyword.operator.sizeof.objcpp" - }, - { - "match": "--", - "name": "keyword.operator.decrement.objcpp" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.objcpp" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", - "name": "keyword.operator.assignment.compound.objcpp" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.objcpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.objcpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.objcpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.objcpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.objcpp" - }, - { - "match": "=", - "name": "keyword.operator.assignment.objcpp" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.objcpp" - }, - { - "begin": "(\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objcpp" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objcpp" - } - } - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))", - "name": "storage.type.built-in.primitive.objcpp" - }, - { - "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))", - "name": "storage.type.built-in.objcpp" - }, - { - "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)", - "name": "storage.type.$1.objcpp" - } - ] - }, - "vararg_ellipses": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.objcpp" - }, - "preprocessor-rule-conditional": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-line": { - "patterns": [ - { - "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", - "name": "keyword.control.directive.conditional.objcpp" - }, - { - "match": "\\bdefined\\b", - "name": "invalid.illegal.macro-name.objcpp" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#operators" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objcpp" - }, - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - } - ] - }, - "preprocessor-rule-disabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif-block": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "#block_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-else": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-enabled-else-block": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - "preprocessor-rule-define-line-contents": { - "patterns": [ - { - "include": "#vararg_ellipses" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - }, - { - "match": "\\)", - "name": "punctuation.section.parens.end.bracket.round.objcpp" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", - "name": "meta.function.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "$base" - } - ] - }, - "preprocessor-rule-define-line-blocks": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-define-line-functions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#vararg_ellipses" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "function-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses" - }, - { - "name": "meta.function.definition.parameters.objcpp", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "$base" - } - ] - }, - "function-call-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - "default_statement": { - "name": "meta.conditional.case.objcpp", - "begin": "((?<!\\w)default(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.default.objcpp" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.default.objcpp" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "case_statement": { - "name": "meta.conditional.case.objcpp", - "begin": "((?<!\\w)case(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.case.objcpp" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.objcpp" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "switch_statement": { - "name": "meta.block.switch.objcpp", - "begin": "(((?<!\\w)switch(?!\\w)))", - "beginCaptures": { - "1": { - "name": "meta.head.switch.objcpp" - }, - "2": { - "name": "keyword.control.switch.objcpp" - } - }, - "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))", - "patterns": [ - { - "name": "meta.head.switch.objcpp", - "begin": "\\G ?", - "end": "((?:\\{|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.switch.objcpp" - } - }, - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$base" - } - ] - }, - { - "name": "meta.body.switch.objcpp", - "begin": "(?<=\\{)", - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.switch.objcpp" - } - }, - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - { - "name": "meta.tail.switch.objcpp", - "begin": "(?<=})[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "switch_conditional_parentheses": { - "name": "meta.conditional.switch.objcpp", - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objcpp" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "static_assert": { - "begin": "(static_assert|_Static_assert)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.static_assert.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "name": "meta.static_assert.message.objcpp", - "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.objcpp" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#string_context" - }, - { - "include": "#string_context_c" - } - ] - }, - { - "include": "#function_call_context" - } - ] - }, - "conditional_context": { - "patterns": [ - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - "member_access": { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", - "captures": { - "1": { - "name": "variable.other.object.access.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - } - } - } - ] - }, - "5": { - "name": "variable.other.member.objcpp" - } - } - }, - "method_access": { - "contentName": "meta.function-call.member.objcpp", - "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.other.object.access.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - } - } - } - ] - }, - "5": { - "name": "entity.name.function.member.objcpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "numbers": { - "begin": "(?<!\\w)(?=\\d|\\.\\d)", - "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "patterns": [ - { - "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "constant.numeric.hexadecimal.objcpp" - }, - "5": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objcpp" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "constant.numeric.decimal.point.objcpp" - }, - "5": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "8": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "9": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "10": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "11": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objcpp" - } - } - }, - { - "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.binary.objcpp" - }, - "2": { - "name": "constant.numeric.binary.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.octal.objcpp" - }, - "2": { - "name": "constant.numeric.octal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "2": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "5": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "6": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "7": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "8": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "5": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "6": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "7": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "8": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objcpp" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objcpp" - } - } - }, - { - "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+", - "name": "invalid.illegal.constant.numeric.objcpp" - } - ] - } - } - }, - "comment": { - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "\\*/", - "name": "comment.block.objcpp" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objcpp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.objcpp", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.objcpp" - } - ] - } - ] - } - ] - }, - "cpp_lang": { - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#strings" - }, - { - "match": "\\b(friend|explicit|virtual|override|final|noexcept)\\b", - "name": "storage.modifier.objcpp" - }, - { - "match": "\\b(private:|protected:|public:)", - "name": "storage.type.modifier.access.objcpp" - }, - { - "match": "\\b(catch|try|throw|using)\\b", - "name": "keyword.control.objcpp" - }, - { - "match": "\\bdelete\\b(\\s*\\[\\])?|\\bnew\\b(?!])", - "name": "keyword.control.objcpp" - }, - { - "match": "\\b(f|m)[A-Z]\\w*\\b", - "name": "variable.other.readwrite.member.objcpp" - }, - { - "match": "\\bthis\\b", - "name": "variable.language.this.objcpp" - }, - { - "match": "\\bnullptr\\b", - "name": "constant.language.objcpp" - }, - { - "include": "#template_definition" - }, - { - "match": "\\btemplate\\b\\s*", - "name": "storage.type.template.objcpp" - }, - { - "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*", - "name": "keyword.operator.cast.objcpp" - }, - { - "name": "punctuation.separator.namespace.access.objcpp", - "match": "((?:[a-zA-Z_][a-zA-Z_0-9]*::)*)([a-zA-Z_][a-zA-Z_0-9]*)(::)", - "captures": { - "1": { - "name": "entity.scope.objcpp" - }, - "2": { - "name": "entity.scope.name.objcpp" - }, - "3": { - "name": "punctuation.separator.namespace.access.objcpp" - } - } - }, - { - "match": "\\b(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\b", - "name": "keyword.operator.objcpp" - }, - { - "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b", - "name": "storage.type.objcpp" - }, - { - "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b", - "name": "storage.modifier.objcpp" - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.destructor.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.destructor.prototype.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "include": "#c_lang" - } - ], - "repository": { - "template_definition": { - "begin": "\\b(template)\\s*(<)\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.template.objcpp" - }, - "2": { - "name": "meta.template.angle-brackets.start.objcpp" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "meta.template.angle-brackets.end.objcpp" - } - }, - "name": "template.definition.objcpp", - "patterns": [ - { - "include": "#template_definition_argument" - } - ] - }, - "template_definition_argument": { - "match": "\\s*(?:([a-zA-Z_][a-zA-Z_0-9]*\\s*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)|([a-zA-Z_][a-zA-Z_0-9]*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_][a-zA-Z_0-9]*)|((?:[a-zA-Z_][a-zA-Z_0-9]*\\s+)*)([a-zA-Z_][a-zA-Z_0-9]*)\\s*(=)\\s*(\\w+))(,|(?=>))", - "captures": { - "1": { - "name": "storage.type.template.objcpp" - }, - "2": { - "name": "storage.type.template.objcpp" - }, - "3": { - "name": "entity.name.type.template.objcpp" - }, - "4": { - "name": "storage.type.template.objcpp" - }, - "5": { - "name": "meta.template.operator.ellipsis.objcpp" - }, - "6": { - "name": "entity.name.type.template.objcpp" - }, - "7": { - "name": "storage.type.template.objcpp" - }, - "8": { - "name": "entity.name.type.template.objcpp" - }, - "9": { - "name": "keyword.operator.assignment.objcpp" - }, - "10": { - "name": "constant.language.objcpp" - }, - "11": { - "name": "meta.template.operator.comma.objcpp" - } - } - }, - "angle_brackets": { - "begin": "<", - "end": ">", - "name": "meta.angle-brackets.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "include": "$base" - } - ] - }, - "block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket", - "name": "meta.function-call.objcpp" - }, - { - "include": "$base" - } - ] - }, - "constructor": { - "patterns": [ - { - "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch|enumerate|r?iterate)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.constructor.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.constructor.objcpp", - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "end": "(?=\\{)", - "name": "meta.function.constructor.initializer-list.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "special_block": { - "patterns": [ - { - "begin": "\\b(using)\\b\\s*(namespace)\\b\\s*((?:[_A-Za-z][_A-Za-z0-9]*\\b(::)?)*)", - "beginCaptures": { - "1": { - "name": "keyword.control.objcpp" - }, - "2": { - "name": "storage.type.namespace.objcpp" - }, - "3": { - "name": "entity.name.type.objcpp" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.objcpp" - } - }, - "name": "meta.using-namespace-declaration.objcpp" - }, - { - "begin": "\\b(namespace)\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+", - "beginCaptures": { - "1": { - "name": "storage.type.namespace.objcpp" - }, - "2": { - "name": "entity.name.type.objcpp" - } - }, - "captures": { - "1": { - "name": "keyword.control.namespace.$2.objcpp" - } - }, - "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))", - "name": "meta.namespace-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?", - "beginCaptures": { - "1": { - "name": "storage.type.class.objcpp" - }, - "2": { - "name": "storage.type.struct.objcpp" - }, - "3": { - "name": "entity.name.type.objcpp" - }, - "5": { - "name": "storage.type.modifier.access.objcpp" - }, - "6": { - "name": "entity.name.type.inherited.objcpp" - }, - "7": { - "patterns": [ - { - "match": "(public|protected|private)", - "name": "storage.type.modifier.access.objcpp" - }, - { - "match": "[_A-Za-z][_A-Za-z0-9]*", - "name": "entity.name.type.inherited.objcpp" - } - ] - } - }, - "end": "(?<=\\})|(?=(;|\\(|\\)|>|\\[|\\]|=))", - "name": "meta.class-struct-block.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "(\\})(\\s*\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - }, - "2": { - "name": "invalid.illegal.you-forgot-semicolon.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(extern)(?=\\s*\")", - "beginCaptures": { - "1": { - "name": "storage.modifier.objcpp" - } - }, - "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)", - "name": "meta.extern-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}|(?=\\s*#\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "(u|u8|U|L)?\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "match": "\\\\u\\h{4}|\\\\U\\h{8}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\x\\h+", - "name": "constant.character.escape.objcpp" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - }, - "3": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "end": "\\)\\2(\\3)\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - }, - "1": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "name": "string.quoted.double.raw.objcpp" - } - ] - } - } - }, - "cpp_lang_newish": { - "patterns": [ - { - "include": "#special_block" - }, - { - "match": "(?-mix:##[a-zA-Z_]\\w*(?!\\w))", - "name": "variable.other.macro.argument.objcpp" - }, - { - "include": "#strings" - }, - { - "match": "(?<!\\w)((?:inline|constexpr|mutable|friend|explicit|virtual))(?!\\w)", - "name": "storage.modifier.specificer.functional.pre-parameters.$1.objcpp" - }, - { - "match": "(?<!\\w)((?:final|override|volatile|const|noexcept))(?!\\w)(?=\\s*(?:(?:(?:(?:\\{|;))|[\\n\\r])))", - "name": "storage.modifier.specifier.functional.post-parameters.$1.objcpp" - }, - { - "match": "(?<!\\w)((?:const|static|volatile|register|restrict|extern))(?!\\w)", - "name": "storage.modifier.specifier.$1.objcpp" - }, - { - "match": "(?<!\\w)((?:private|protected|public)) *:", - "name": "storage.type.modifier.access.control.$1.objcpp" - }, - { - "match": "(?<!\\w)(?:throw|try|catch)(?!\\w)", - "name": "keyword.control.exception.$1.objcpp" - }, - { - "match": "(?<!\\w)(using|typedef)(?!\\w)", - "name": "keyword.other.$1.objcpp" - }, - { - "include": "#memory_operators" - }, - { - "match": "\\bthis\\b", - "name": "variable.language.this.objcpp" - }, - { - "include": "#constants" - }, - { - "include": "#template_definition" - }, - { - "match": "\\btemplate\\b\\s*", - "name": "storage.type.template.objcpp" - }, - { - "match": "\\b(const_cast|dynamic_cast|reinterpret_cast|static_cast)\\b\\s*", - "name": "keyword.operator.cast.$1.objcpp" - }, - { - "include": "#scope_resolution" - }, - { - "match": "\\b(decltype|wchar_t|char16_t|char32_t)\\b", - "name": "storage.type.objcpp" - }, - { - "match": "\\b(constexpr|export|mutable|typename|thread_local)\\b", - "name": "storage.modifier.objcpp" - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.destructor.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.destructor.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.destructor.objcpp" - } - }, - "name": "meta.function.destructor.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "begin": "(?x)\n(?:\n ^ | # beginning of line\n (?:(?<!else|new|=)) # or word + space before name\n)\n((?:[A-Za-z_][A-Za-z0-9_]*::)*+~[A-Za-z_][A-Za-z0-9_]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "name": "meta.function.destructor.prototype.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - }, - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#comments-c" - }, - { - "match": "\\b(break|case|continue|default|do|else|for|goto|if|_Pragma|return|switch|while)\\b", - "name": "keyword.control.$1.objcpp" - }, - { - "include": "#storage_types_c" - }, - { - "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", - "name": "storage.modifier.objcpp" - }, - { - "include": "#operators" - }, - { - "include": "#operator_overload" - }, - { - "include": "#number_literal" - }, - { - "include": "#strings-c" - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "entity.name.function.preprocessor.objcpp" - }, - "5": { - "name": "punctuation.definition.parameters.begin.objcpp" - }, - "6": { - "name": "variable.parameter.preprocessor.objcpp" - }, - "8": { - "name": "punctuation.separator.parameters.objcpp" - }, - "9": { - "name": "punctuation.definition.parameters.end.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.diagnostic.objcpp", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?=\\s*\\n)", - "name": "string.unquoted.single.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments-c" - } - ] - } - ] - }, - { - "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.$3.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.include.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.include.objcpp" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.other.lt-gt.include.objcpp" - } - ] - }, - { - "include": "#pragma-mark" - }, - { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#strings-c" - }, - { - "include": "#number_literal" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*undef))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.undef.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*pragma))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.pragma.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.pragma.objcpp", - "patterns": [ - { - "include": "#strings-c" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.objcpp" - }, - { - "include": "#number_literal" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", - "name": "support.type.sys-types.objcpp" - }, - { - "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", - "name": "support.type.pthread.objcpp" - }, - { - "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", - "name": "support.type.stdint.objcpp" - }, - { - "match": "(?<!\\w)[a-zA-Z_](?:\\w)*_t(?!\\w)", - "name": "support.type.posix-reserved.objcpp" - }, - { - "include": "#block-c" - }, - { - "include": "#parens-c" - }, - { - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", - "end": "(?<=\\))", - "name": "meta.function.definition.objcpp", - "patterns": [ - { - "include": "#function-innards-c" - } - ] - }, - { - "include": "#line_continuation_character" - }, - { - "name": "meta.bracket.square.access.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.other.object.objcpp" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.objcpp" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "name": "storage.modifier.array.bracket.square.objcpp", - "match": "(?-mix:(?<!delete))\\\\[\\\\s*\\\\]" - }, - { - "match": ";", - "name": "punctuation.terminator.statement.objcpp" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.objcpp" - } - ], - "repository": { - "literal_numeric_seperator": { - "match": "(?<!')'(?!')", - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "number_literal": { - "match": "((?<!\\w)(?:(?:(?:(0[xX])(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F]))))(?:([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*))?(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?|(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?((?:(?:(?<=[0-9])\\.|\\.(?=[0-9]))))(?:([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*))?(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:([lLfF](?!\\w)))?|(?:(?:(?:(?:(?:(0[bB])((?:(?:(?:[01]|((?<!')'(?!')))))+)|(0)((?:(?:(?:[0-7]|((?<!')'(?!')))))+)))|(0[xX])([0-9a-fA-F](?:(?:(?:[0-9a-fA-F]|((?<!')'(?!')))))*)(?:([pP])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?))|([0-9](?:(?:(?:[0-9]|((?<!')'(?!')))))*)(?:([eE])(\\+)?(\\-)?((?:[0-9](?:(?:(?:[0-9]|(?:(?<!')'(?!')))))*)))?)(?:((?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:(?:LL[uU]|ll[uU]))|[uU]LL))|[uU]ll))|ll))|LL))|[uUlL]))(?!\\w)))?))(\\w*))", - "captures": { - "2": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "3": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "4": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "5": { - "name": "constant.numeric.hexadecimal.objcpp" - }, - "6": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "7": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "12": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "13": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "14": { - "name": "constant.numeric.decimal.point.objcpp" - }, - "15": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "16": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "17": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "18": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "19": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "20": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "21": { - "name": "keyword.other.unit.suffix.floating-point.objcpp" - }, - "22": { - "name": "keyword.other.unit.binary.objcpp" - }, - "23": { - "name": "constant.numeric.binary.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "24": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "25": { - "name": "keyword.other.unit.octal.objcpp" - }, - "26": { - "name": "constant.numeric.octal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "27": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "28": { - "name": "keyword.other.unit.hexadecimal.objcpp" - }, - "29": { - "name": "constant.numeric.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "30": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "31": { - "name": "keyword.other.unit.exponent.hexadecimal.objcpp" - }, - "32": { - "name": "keyword.operator.plus.exponent.hexadecimal.objcpp" - }, - "33": { - "name": "keyword.operator.minus.exponent.hexadecimal.objcpp" - }, - "34": { - "name": "constant.numeric.exponent.hexadecimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "35": { - "name": "constant.numeric.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "36": { - "name": "punctuation.separator.constant.numeric.objcpp" - }, - "37": { - "name": "keyword.other.unit.exponent.decimal.objcpp" - }, - "38": { - "name": "keyword.operator.plus.exponent.decimal.objcpp" - }, - "39": { - "name": "keyword.operator.minus.exponent.decimal.objcpp" - }, - "40": { - "name": "constant.numeric.exponent.decimal.objcpp", - "patterns": [ - { - "include": "#literal_numeric_seperator" - } - ] - }, - "41": { - "name": "keyword.other.unit.suffix.integer.objcpp" - }, - "42": { - "name": "keyword.other.unit.user-defined.objcpp" - } - } - }, - "constants": { - "match": "(?<!\\w)(?:NULL|true|false|nullptr)(?!\\w)", - "name": "constant.language.objcpp" - }, - "storage_types_c": { - "patterns": [ - { - "match": "(?<!\\w)(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t)(?!\\w)", - "name": "storage.type.primitive.objcpp" - }, - { - "match": "(?<!\\w)(?:u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t)(?!\\w)", - "name": "storage.type.objcpp" - }, - { - "match": "(?<!\\w)(asm|__asm__|enum|union|struct)(?!\\w)", - "name": "storage.type.$1.objcpp" - } - ] - }, - "memory_operators": { - "match": "(?<!\\w)(?:(?:(delete)\\s*(\\[\\])|(delete))|(new))(?!\\w)", - "captures": { - "1": { - "name": "keyword.operator.memory.delete.array.objcpp" - }, - "2": { - "name": "keyword.operator.memory.delete.array.bracket.objcpp" - }, - "3": { - "name": "keyword.operator.memory.delete.objcpp" - }, - "4": { - "name": "keyword.operator.memory.new.objcpp" - } - }, - "name": "keyword.operator.memory.objcpp" - }, - "template_call_innards": { - "match": "<(?:[\\s<>,\\w])*>\\s*", - "captures": { - "0": { - "name": "meta.template.call.objcpp", - "patterns": [ - { - "include": "#storage_types_c" - }, - { - "include": "#constants" - }, - { - "include": "#scope_resolution" - }, - { - "match": "(?<!\\w)[a-zA-Z_]\\w*(?!\\w)", - "name": "storage.type.user-defined.objcpp" - }, - { - "include": "#operators" - }, - { - "include": "#number_literal" - }, - { - "include": "#strings" - }, - { - "match": ",", - "name": "punctuation.separator.comma.template.argument.objcpp" - } - ] - } - } - }, - "template_definition": { - "name": "meta.template.definition.objcpp", - "begin": "(?-mix:(?<!\\w)(template)\\s*(<))", - "beginCaptures": { - "1": { - "name": "storage.type.template.objcpp" - }, - "2": { - "name": "punctuation.section.angle-brackets.start.template.definition.objcpp" - } - }, - "end": "(?-mix:(>))", - "endCaptures": { - "1": { - "name": "punctuation.section.angle-brackets.end.template.definition.objcpp" - } - }, - "patterns": [ - { - "include": "#scope_resolution" - }, - { - "include": "#template_definition_argument" - }, - { - "include": "#template_call_innards" - } - ] - }, - "template_definition_argument": { - "match": "((?:(?:(?:(?:(?:(?:\\s*([a-zA-Z_]\\w*)|((?:[a-zA-Z_]\\w*\\s+)+)([a-zA-Z_]\\w*)))|([a-zA-Z_]\\w*)\\s*(\\.\\.\\.)\\s*([a-zA-Z_]\\w*)))|((?:[a-zA-Z_]\\w*\\s+)*)([a-zA-Z_]\\w*)\\s*([=])\\s*(\\w+)))\\s*(?:(?:(,)|(?=>))))", - "captures": { - "2": { - "name": "storage.type.template.argument.$1.objcpp" - }, - "3": { - "name": "storage.type.template.argument.$2.objcpp" - }, - "4": { - "name": "entity.name.type.template.objcpp" - }, - "5": { - "name": "storage.type.template.objcpp" - }, - "6": { - "name": "keyword.operator.ellipsis.template.definition.objcpp" - }, - "7": { - "name": "entity.name.type.template.objcpp" - }, - "8": { - "name": "storage.type.template.objcpp" - }, - "9": { - "name": "entity.name.type.template.objcpp" - }, - "10": { - "name": "keyword.operator.assignment.objcpp" - }, - "11": { - "name": "constant.other.objcpp" - }, - "12": { - "name": "punctuation.separator.comma.template.argument.objcpp" - } - } - }, - "scope_resolution": { - "match": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*\\s*)([a-zA-Z_]\\w*)\\s*((?:<(?:[\\s<>,\\w])*>\\s*))?(::)", - "captures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution" - } - ] - }, - "2": { - "name": "entity.name.namespace.scope-resolution.objcpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_innards" - } - ] - }, - "4": { - "name": "punctuation.separator.namespace.access.objcpp" - } - }, - "name": "meta.scope-resolution.objcpp" - }, - "angle_brackets": { - "begin": "<", - "end": ">", - "name": "meta.angle-brackets.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "include": "$base" - } - ] - }, - "block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "captures": { - "1": { - "name": "support.function.any-method.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.objcpp" - } - }, - "match": "(?x)\n(\n (?!while|for|do|if|else|switch|catch|return)\n (?:\\b[A-Za-z_][A-Za-z0-9_]*+\\b|::)*+ # actual name\n)\n\\s*(\\() # opening bracket", - "name": "meta.function-call.objcpp" - }, - { - "include": "$base" - } - ] - }, - "constructor": { - "patterns": [ - { - "begin": "(?x)\n(?:^\\s*) # beginning of line\n((?!while|for|do|if|else|switch|catch)[A-Za-z_][A-Za-z0-9_:]*) # actual name\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "entity.name.function.constructor.objcpp" - }, - "2": { - "name": "punctuation.definition.parameters.begin.constructor.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.constructor.objcpp" - } - }, - "name": "meta.function.constructor.objcpp", - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards-c" - } - ] - }, - { - "begin": "(?x)\n(:)\n(\n (?=\n \\s*[A-Za-z_][A-Za-z0-9_:]* # actual name\n \\s* (\\() # opening bracket\n )\n)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.initializer-list.parameters.objcpp" - } - }, - "end": "(?=\\{)", - "name": "meta.function.constructor.initializer-list.objcpp", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "special_block": { - "patterns": [ - { - "comment": "https://en.cppreference.com/w/cpp/language/namespace", - "begin": "\\b(using)\\s+(namespace)\\s+(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*)?((?<!\\w)[a-zA-Z_]\\w*(?!\\w))(?=;|\\n)", - "beginCaptures": { - "1": { - "name": "keyword.other.using.directive.objcpp" - }, - "2": { - "name": "keyword.other.namespace.directive.objcpp storage.type.namespace.directive.objcpp" - }, - "3": { - "patterns": [ - { - "include": "#scope_resolution" - } - ] - }, - "4": { - "name": "entity.name.namespace.objcpp" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.statement.objcpp" - } - }, - "name": "meta.using-namespace-declaration.objcpp" - }, - { - "begin": "(?<!\\w)(namespace)\\s+(?:(?:((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*)|(?={)))", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.definition.objcpp storage.type.namespace.definition.objcpp" - }, - "2": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)[a-zA-Z_]\\w*(?!\\w))", - "name": "entity.name.type.objcpp" - }, - { - "match": "::", - "name": "punctuation.separator.namespace.access.objcpp" - } - ] - } - }, - "end": "(?<=\\})|(?=(;|,|\\(|\\)|>|\\[|\\]|=))", - "name": "meta.namespace-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.scope.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(?:(class)|(struct))\\b\\s*([_A-Za-z][_A-Za-z0-9]*\\b)?+(\\s*:\\s*(public|protected|private)\\s*([_A-Za-z][_A-Za-z0-9]*\\b)((\\s*,\\s*(public|protected|private)\\s*[_A-Za-z][_A-Za-z0-9]*\\b)*))?", - "beginCaptures": { - "1": { - "name": "storage.type.class.objcpp" - }, - "2": { - "name": "storage.type.struct.objcpp" - }, - "3": { - "name": "entity.name.type.objcpp" - }, - "5": { - "name": "storage.type.modifier.access.objcpp" - }, - "6": { - "name": "entity.name.type.inherited.objcpp" - }, - "7": { - "patterns": [ - { - "match": "(public|protected|private)", - "name": "storage.type.modifier.access.objcpp" - }, - { - "match": "[_A-Za-z][_A-Za-z0-9]*", - "name": "entity.name.type.inherited.objcpp" - } - ] - } - }, - "end": "(?<=\\})|(;)|(?=(\\(|\\)|>|\\[|\\]|=))", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.objcpp" - } - }, - "name": "meta.class-struct-block.objcpp", - "patterns": [ - { - "include": "#angle_brackets" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "(\\})(\\s*\\n)?", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - }, - "2": { - "name": "invalid.illegal.you-forgot-semicolon.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "#constructor" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\b(extern)(?=\\s*\")", - "beginCaptures": { - "1": { - "name": "storage.modifier.objcpp" - } - }, - "end": "(?<=\\})|(?=\\w)|(?=\\s*#\\s*endif\\b)", - "name": "meta.extern-block.objcpp", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "\\}|(?=\\s*#\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#special_block" - }, - { - "include": "$base" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "(u|u8|U|L)?\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "match": "\\\\u\\h{4}|\\\\U\\h{8}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\['\"?\\\\abfnrtv]", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\x\\h+", - "name": "constant.character.escape.objcpp" - }, - { - "include": "#string_placeholder-c" - } - ] - }, - { - "begin": "(u|u8|U|L)?R\"(?:([^ ()\\\\\\t]{0,16})|([^ ()\\\\\\t]*))\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - }, - "1": { - "name": "meta.encoding.objcpp" - }, - "3": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "end": "\\)\\2(\\3)\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - }, - "1": { - "name": "invalid.illegal.delimiter-too-long.objcpp" - } - }, - "name": "string.quoted.double.raw.objcpp" - } - ] - }, - "probably_a_parameter": { - "match": "(?:(?:([a-zA-Z_]\\w*)\\s*(?==)|(?<=\\w\\s|\\*\\/|[&*>\\]\\)])\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:(?:,|\\))))))", - "captures": { - "1": { - "name": "variable.parameter.probably.defaulted.objcpp" - }, - "2": { - "name": "variable.parameter.probably.objcpp" - } - } - }, - "operator_overload": { - "begin": "((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*(operator)((?:(?:\\s*(?:\\+\\+|\\-\\-|\\(\\)|\\[\\]|\\->|\\+\\+|\\-\\-|\\+|\\-|!|~|\\*|&|\\->\\*|\\*|\\/|%|\\+|\\-|<<|>>|<=>|<|<=|>|>=|==|!=|&|\\^|\\||&&|\\|\\||=|\\+=|\\-=|\\*=|\\/=|%=|<<=|>>=|&=|\\^=|\\|=|,)|\\s+(?:(?:(?:new|new\\[\\]|delete|delete\\[\\])|(?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*[a-zA-Z_]\\w*\\s*(?:&)?)))))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.scope.objcpp" - }, - "2": { - "name": "keyword.other.operator.overload.objcpp" - }, - "3": { - "name": "entity.name.operator.overloadee.objcpp" - }, - "4": { - "name": "punctuation.section.parameters.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objcpp" - } - }, - "name": "meta.function.definition.parameters.operator-overload.objcpp", - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards-c" - } - ] - }, - "access-method": { - "name": "meta.function-call.member.objcpp", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.other.object.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objcpp" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objcpp" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.other.object.objcpp" - }, - { - "name": "everything.else.objcpp", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.objcpp" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - "access-member": { - "name": "variable.other.object.access.objcpp", - "match": "(?:(?:([a-zA-Z_]\\w*)|(?<=\\]|\\))))\\s*(?:(?:((?:(?:\\.|\\.\\*)))|((?:(?:->|->\\*)))))\\s*((?:[a-zA-Z_]\\w*\\s*(?:(?:\\.|->))\\s*)*)\\b(?!(?:auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t))([a-zA-Z_]\\w*)\\b(?!\\()", - "captures": { - "1": { - "name": "variable.other.object.objcpp" - }, - "2": { - "name": "punctuation.separator.dot-access.objcpp" - }, - "3": { - "name": "punctuation.separator.pointer-access.objcpp" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objcpp" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objcpp" - }, - { - "match": "[a-zA-Z_]\\w*", - "name": "variable.other.object.objcpp" - }, - { - "match": ".+", - "name": "everything.else.objcpp" - } - ] - }, - "5": { - "name": "variable.other.member.objcpp" - } - } - }, - "block-c": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#block_innards-c" - } - ] - } - ] - }, - "block_innards-c": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.objcpp", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.objcpp" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards-c" - } - ] - }, - { - "include": "#parens-block-c" - }, - { - "include": "$base" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.objcpp", - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - "comments-c": { - "patterns": [ - { - "captures": { - "1": { - "name": "meta.toc-list.banner.block.objcpp" - } - }, - "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", - "name": "comment.block.objcpp" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.objcpp" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.objcpp" - } - }, - "name": "comment.block.objcpp" - }, - { - "captures": { - "1": { - "name": "meta.toc-list.banner.line.objcpp" - } - }, - "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.objcpp" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objcpp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objcpp" - } - }, - "end": "(?=\\n)", - "name": "comment.line.double-slash.objcpp", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.objcpp" - } - } - } - ] - }, - "parens-c": { - "name": "punctuation.section.parens-c\b.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "$base" - } - ] - }, - "parens-block-c": { - "name": "meta.block.parens.objcpp", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#block_innards-c" - }, - { - "match": "(?<!:):(?!:)", - "name": "punctuation.range-based.objcpp" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.pragma.objcpp" - }, - "2": { - "name": "keyword.control.directive.pragma.pragma-mark.objcpp" - }, - "3": { - "name": "punctuation.definition.directive.objcpp" - }, - "4": { - "name": "entity.name.tag.pragma-mark.objcpp" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objcpp" - }, - "operators": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)((?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept))(?!\\w))", - "name": "keyword.operator.$1.objcpp" - }, - { - "match": "--", - "name": "keyword.operator.decrement.objcpp" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.objcpp" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", - "name": "keyword.operator.assignment.compound.objcpp" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.objcpp" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.objcpp" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.objcpp" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.objcpp" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.objcpp" - }, - { - "match": "=", - "name": "keyword.operator.assignment.objcpp" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.objcpp" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": ":", - "applyEndPatternLast": true, - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#c_function_call" - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings-c": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#string_placeholder-c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "(?-mix:(?<![\\da-fA-F])')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "string_escaped_char-c": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - "string_placeholder-c": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objcpp" - } - ] - }, - "vararg_ellipses-c": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.objcpp" - }, - "preprocessor-rule-conditional": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objcpp" - } - } - } - ] - }, - "preprocessor-rule-conditional-line": { - "patterns": [ - { - "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", - "name": "keyword.control.directive.conditional.objcpp" - }, - { - "match": "\\bdefined\\b", - "name": "invalid.illegal.macro-name.objcpp" - }, - { - "include": "#comments-c" - }, - { - "include": "#strings-c" - }, - { - "include": "#number_literal" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#operators" - }, - { - "include": "#constants" - }, - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objcpp" - }, - { - "include": "#line_continuation_character" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - } - ] - }, - "preprocessor-rule-disabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.else-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.if-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#block_innards-c" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif-block": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments-c" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "contentName": "comment.block.preprocessor.elif-branch.in-block.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "contentName": "comment.block.preprocessor.elif-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - } - ] - }, - "preprocessor-rule-enabled-else": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-enabled-else-block": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objcpp" - }, - "1": { - "name": "keyword.control.directive.conditional.objcpp" - }, - "2": { - "name": "punctuation.definition.directive.objcpp" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#block_innards-c" - } - ] - }, - "preprocessor-rule-define-line-contents": { - "patterns": [ - { - "include": "#vararg_ellipses-c" - }, - { - "match": "(?-mix:##?[a-zA-Z_]\\w*(?!\\w))", - "name": "variable.other.macro.argument.objcpp" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "name": "meta.block.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - }, - { - "match": "\\)", - "name": "punctuation.section.parens.end.bracket.round.objcpp" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", - "name": "meta.function.objcpp", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.double.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#string_placeholder-c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objcpp" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objcpp" - } - }, - "name": "string.quoted.single.objcpp", - "patterns": [ - { - "include": "#string_escaped_char-c" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "$base" - } - ] - }, - "preprocessor-rule-define-line-blocks": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objcpp" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-define-line-functions": { - "patterns": [ - { - "include": "#comments-c" - }, - { - "include": "#storage_types_c" - }, - { - "include": "#vararg_ellipses-c" - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "function-innards-c": { - "patterns": [ - { - "include": "#comments-c" - }, - { - "include": "#storage_types_c" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses-c" - }, - { - "name": "meta.function.definition.parameters.objcpp", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objcpp" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.objcpp" - } - }, - "end": "\\)|:", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards-c" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-innards-c" - } - ] - }, - { - "include": "$base" - } - ] - }, - "function-call-innards-c": { - "patterns": [ - { - "include": "#comments-c" - }, - { - "include": "#storage_types_c" - }, - { - "include": "#access-method" - }, - { - "include": "#access-member" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|return|typeid|alignof|alignas|sizeof|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:new)\\s*((?:(?:<(?:[\\s<>,\\w])*>\\s*))?) # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.memory.new.objcpp" - }, - "2": { - "patterns": [ - { - "include": "#template_call_innards" - } - ] - }, - "3": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|new|delete|not_eq|bitand|xor|bitor|and|or|throw|and_eq|xor_eq|or_eq|alignof|alignas|typeid|noexcept|static_cast|dynamic_cast|const_cast|reinterpret_cast|while|for|do|if|else|goto|switch|try|catch|return|break|case|continue|default|auto|void|char|short|int|signed|unsigned|long|float|double|bool|wchar_t|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|nullptr|class|struct|union|enum|const|static|volatile|register|restrict|extern|inline|constexpr|mutable|friend|explicit|virtual|volatile|const|noexcept|constexpr|mutable|constexpr|consteval|private|protected|public|this|template|namespace|using|operator|typedef|decltype|typename|asm|__asm__|concept|requires|export|thread_local|atomic_cancel|atomic_commit|atomic_noexcept|co_await|co_return|co_yield|import|module|reflexpr|synchronized)\\s*\\()((?:[a-zA-Z_]\\w*\\s*(?:(?:<(?:[\\s<>,\\w])*>\\s*))?::)*)\\s*([a-zA-Z_]\\w*)\\s*(?:((?:<(?:[\\s<>,\\w])*>\\s*)))?(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#scope_resolution" - } - ] - }, - "2": { - "name": "entity.name.function.call.objcpp" - }, - "3": { - "patterns": [ - { - "include": "#template_call_innards" - } - ] - }, - "4": { - "name": "punctuation.section.arguments.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objcpp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objcpp" - } - }, - "patterns": [ - { - "include": "#function-call-innards-c" - } - ] - }, - { - "include": "#block_innards-c" - } - ] - } - } - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "comment": "eat nested preprocessor if(def)s", - "end": "^\\s*#\\s*endif\\b.*$", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "implementation_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-implementation" - }, - { - "include": "#preprocessor-rule-disabled-implementation" - }, - { - "include": "#preprocessor-rule-other-implementation" - }, - { - "include": "#property_directive" - }, - { - "include": "#special_variables" - }, - { - "include": "#method_super" - }, - { - "include": "$base" - } - ] - }, - "interface_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-interface" - }, - { - "include": "#preprocessor-rule-disabled-interface" - }, - { - "include": "#preprocessor-rule-other-interface" - }, - { - "include": "#properties" - }, - { - "include": "#protocol_list" - }, - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "method": { - "begin": "^(-|\\+)\\s*", - "end": "(?=\\{|#)|;", - "name": "meta.function.objcpp", - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.type.begin.objcpp" - } - }, - "end": "(\\))\\s*(\\w+\\b)", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objcpp" - }, - "2": { - "name": "entity.name.function.objcpp" - } - }, - "name": "meta.return-type.objcpp", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "match": "\\b\\w+(?=:)", - "name": "entity.name.function.name-of-parameter.objcpp" - }, - { - "begin": "((:))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.name-of-parameter.objcpp" - }, - "2": { - "name": "punctuation.separator.arguments.objcpp" - }, - "3": { - "name": "punctuation.definition.type.begin.objcpp" - } - }, - "end": "(\\))\\s*(\\w+\\b)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objcpp" - }, - "2": { - "name": "variable.parameter.function.objcpp" - } - }, - "name": "meta.argument-type.objcpp", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#comment" - } - ] - }, - "method_super": { - "begin": "^(?=-|\\+)", - "end": "(?<=\\})|(?=#)", - "name": "meta.function-with-body.objcpp", - "patterns": [ - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.pragma.objcpp" - }, - "3": { - "name": "meta.toc-list.pragma-mark.objcpp" - } - }, - "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objcpp" - }, - "preprocessor-rule-disabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-disabled-interface": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objcpp", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-interface": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.if.objcpp" - }, - "3": { - "name": "constant.numeric.preprocessor.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.else.objcpp" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objcpp", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - } - ] - }, - "preprocessor-rule-other-implementation": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - "preprocessor-rule-other-interface": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objcpp" - }, - "2": { - "name": "keyword.control.import.objcpp" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - "properties": { - "patterns": [ - { - "begin": "((@)property)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.property.objcpp" - }, - "2": { - "name": "punctuation.definition.keyword.objcpp" - }, - "3": { - "name": "punctuation.section.scope.begin.objcpp" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objcpp" - } - }, - "name": "meta.property-with-attributes.objcpp", - "patterns": [ - { - "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|strong|weak)\\b", - "name": "keyword.other.property.attribute.objcpp" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.property.objcpp" - }, - "2": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "((@)property)\\b", - "name": "meta.property.objcpp" - } - ] - }, - "property_directive": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objcpp" - } - }, - "match": "(@)(dynamic|synthesize)\\b", - "name": "keyword.other.property.directive.objcpp" - }, - "protocol_list": { - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.objcpp" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objcpp" - } - }, - "name": "meta.protocol-list.objcpp", - "patterns": [ - { - "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b", - "name": "support.other.protocol.objcpp" - } - ] - }, - "protocol_type_qualifier": { - "match": "\\b(in|out|inout|oneway|bycopy|byref)\\b", - "name": "storage.modifier.protocol.objcpp" - }, - "special_variables": { - "patterns": [ - { - "match": "\\b_cmd\\b", - "name": "variable.other.selector.objcpp" - }, - { - "match": "\\b(self|super)\\b", - "name": "variable.language.objcpp" - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objcpp" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objcpp" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objcpp" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objcpp" - } - } - } - ] - } - } -} diff --git a/extensions/objective-c/syntaxes/objective-c.tmLanguage.json b/extensions/objective-c/syntaxes/objective-c.tmLanguage.json deleted file mode 100644 index 63ae3d9970d..00000000000 --- a/extensions/objective-c/syntaxes/objective-c.tmLanguage.json +++ /dev/null @@ -1,3606 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/jeff-hykin/cpp-textmate-grammar/blob/master//syntaxes/objc.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/jeff-hykin/cpp-textmate-grammar/commit/bc7dedd28eebe52b374744d3fb34d77ff441569e", - "name": "Objective-C", - "scopeName": "source.objc", - "patterns": [ - { - "begin": "((@)(interface|protocol))(?!.+;)\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*((:)(?:\\s*)([A-Za-z][A-Za-z0-9]*))?(\\s|\\n)?", - "captures": { - "1": { - "name": "storage.type.objc" - }, - "2": { - "name": "punctuation.definition.storage.type.objc" - }, - "4": { - "name": "entity.name.type.objc" - }, - "6": { - "name": "punctuation.definition.entity.other.inherited-class.objc" - }, - "7": { - "name": "entity.other.inherited-class.objc" - }, - "8": { - "name": "meta.divider.objc" - }, - "9": { - "name": "meta.inherited-class.objc" - } - }, - "contentName": "meta.scope.interface.objc", - "end": "((@)end)\\b", - "name": "meta.interface-or-protocol.objc", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "((@)(implementation))\\s+([A-Za-z_][A-Za-z0-9_]*)\\s*(?::\\s*([A-Za-z][A-Za-z0-9]*))?", - "captures": { - "1": { - "name": "storage.type.objc" - }, - "2": { - "name": "punctuation.definition.storage.type.objc" - }, - "4": { - "name": "entity.name.type.objc" - }, - "5": { - "name": "entity.other.inherited-class.objc" - } - }, - "contentName": "meta.scope.implementation.objc", - "end": "((@)end)\\b", - "name": "meta.implementation.objc", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "match": "(?x)%\n\t\t\t\t\t\t(\\d+\\$)? # field (argument #)\n\t\t\t\t\t\t[#0\\- +']* # flags\n\t\t\t\t\t\t((-?\\d+)|\\*(-?\\d+\\$)?)? # minimum field width\n\t\t\t\t\t\t(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)? # precision\n\t\t\t\t\t\t[@] # conversion type\n\t\t\t\t\t", - "name": "constant.other.placeholder.objc" - }, - { - "include": "#string_placeholder" - } - ] - }, - { - "begin": "\\b(id)\\s*(?=<)", - "beginCaptures": { - "1": { - "name": "storage.type.objc" - } - }, - "end": "(?<=>)", - "name": "meta.id-with-protocol.objc", - "patterns": [ - { - "include": "#protocol_list" - } - ] - }, - { - "match": "\\b(NS_DURING|NS_HANDLER|NS_ENDHANDLER)\\b", - "name": "keyword.control.macro.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(try|catch|finally|throw)\\b", - "name": "keyword.control.exception.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(synchronized)\\b", - "name": "keyword.control.synchronize.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(required|optional)\\b", - "name": "keyword.control.protocol-specification.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(defs|encode)\\b", - "name": "keyword.other.objc" - }, - { - "match": "\\bid\\b", - "name": "storage.type.id.objc" - }, - { - "match": "\\b(IBOutlet|IBAction|BOOL|SEL|id|unichar|IMP|Class|instancetype)\\b", - "name": "storage.type.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.storage.type.objc" - } - }, - "match": "(@)(class|protocol)\\b", - "name": "storage.type.objc" - }, - { - "begin": "((@)selector)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "storage.type.objc" - }, - "2": { - "name": "punctuation.definition.storage.type.objc" - }, - "3": { - "name": "punctuation.definition.storage.type.objc" - } - }, - "contentName": "meta.selector.method-name.objc", - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.storage.type.objc" - } - }, - "name": "meta.selector.objc", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\b(?:[a-zA-Z_:][\\w]*)+", - "name": "support.function.any-method.name-of-parameter.objc" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.storage.modifier.objc" - } - }, - "match": "(@)(synchronized|public|package|private|protected)\\b", - "name": "storage.modifier.objc" - }, - { - "match": "\\b(YES|NO|Nil|nil)\\b", - "name": "constant.language.objc" - }, - { - "match": "\\bNSApp\\b", - "name": "support.variable.foundation.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.cocoa.leopard.objc" - }, - "2": { - "name": "support.function.cocoa.leopard.objc" - } - }, - "match": "(\\s*)\\b(NS(Rect(ToCGRect|FromCGRect)|MakeCollectable|S(tringFromProtocol|ize(ToCGSize|FromCGSize))|Draw(NinePartImage|ThreePartImage)|P(oint(ToCGPoint|FromCGPoint)|rotocolFromString)|EventMaskFromType|Value))\\b" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.cocoa.objc" - }, - "2": { - "name": "support.function.cocoa.objc" - } - }, - "match": "(\\s*)\\b(NS(R(ound(DownToMultipleOfPageSize|UpToMultipleOfPageSize)|un(CriticalAlertPanel(RelativeToWindow)?|InformationalAlertPanel(RelativeToWindow)?|AlertPanel(RelativeToWindow)?)|e(set(MapTable|HashTable)|c(ycleZone|t(Clip(List)?|F(ill(UsingOperation|List(UsingOperation|With(Grays|Colors(UsingOperation)?))?)?|romString))|ordAllocationEvent)|turnAddress|leaseAlertPanel|a(dPixel|l(MemoryAvailable|locateCollectable))|gisterServicesProvider)|angeFromString)|Get(SizeAndAlignment|CriticalAlertPanel|InformationalAlertPanel|UncaughtExceptionHandler|FileType(s)?|WindowServerMemory|AlertPanel)|M(i(n(X|Y)|d(X|Y))|ouseInRect|a(p(Remove|Get|Member|Insert(IfAbsent|KnownAbsent)?)|ke(R(ect|ange)|Size|Point)|x(Range|X|Y)))|B(itsPer(SampleFromDepth|PixelFromDepth)|e(stDepth|ep|gin(CriticalAlertSheet|InformationalAlertSheet|AlertSheet)))|S(ho(uldRetainWithZone|w(sServicesMenuItem|AnimationEffect))|tringFrom(R(ect|ange)|MapTable|S(ize|elector)|HashTable|Class|Point)|izeFromString|e(t(ShowsServicesMenuItem|ZoneName|UncaughtExceptionHandler|FocusRingStyle)|lectorFromString|archPathForDirectoriesInDomains)|wap(Big(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|Short|Host(ShortTo(Big|Little)|IntTo(Big|Little)|DoubleTo(Big|Little)|FloatTo(Big|Little)|Long(To(Big|Little)|LongTo(Big|Little)))|Int|Double|Float|L(ittle(ShortToHost|IntToHost|DoubleToHost|FloatToHost|Long(ToHost|LongToHost))|ong(Long)?)))|H(ighlightRect|o(stByteOrder|meDirectory(ForUser)?)|eight|ash(Remove|Get|Insert(IfAbsent|KnownAbsent)?)|FSType(CodeFromFileType|OfFile))|N(umberOfColorComponents|ext(MapEnumeratorPair|HashEnumeratorItem))|C(o(n(tainsRect|vert(GlyphsToPackedGlyphs|Swapped(DoubleToHost|FloatToHost)|Host(DoubleToSwapped|FloatToSwapped)))|unt(MapTable|HashTable|Frames|Windows(ForContext)?)|py(M(emoryPages|apTableWithZone)|Bits|HashTableWithZone|Object)|lorSpaceFromDepth|mpare(MapTables|HashTables))|lassFromString|reate(MapTable(WithZone)?|HashTable(WithZone)?|Zone|File(namePboardType|ContentsPboardType)))|TemporaryDirectory|I(s(ControllerMarker|EmptyRect|FreedObject)|n(setRect|crementExtraRefCount|te(r(sect(sRect|ionR(ect|ange))|faceStyleForKey)|gralRect)))|Zone(Realloc|Malloc|Name|Calloc|Fr(omPointer|ee))|O(penStepRootDirectory|ffsetRect)|D(i(sableScreenUpdates|videRect)|ottedFrameRect|e(c(imal(Round|Multiply|S(tring|ubtract)|Normalize|Co(py|mpa(ct|re))|IsNotANumber|Divide|Power|Add)|rementExtraRefCountWasZero)|faultMallocZone|allocate(MemoryPages|Object))|raw(Gr(oove|ayBezel)|B(itmap|utton)|ColorTiledRects|TiledRects|DarkBezel|W(hiteBezel|indowBackground)|LightBezel))|U(serName|n(ionR(ect|ange)|registerServicesProvider)|pdateDynamicServices)|Java(Bundle(Setup|Cleanup)|Setup(VirtualMachine)?|Needs(ToLoadClasses|VirtualMachine)|ClassesF(orBundle|romPath)|ObjectNamedInPath|ProvidesClasses)|P(oint(InRect|FromString)|erformService|lanarFromDepth|ageSize)|E(n(d(MapTableEnumeration|HashTableEnumeration)|umerate(MapTable|HashTable)|ableScreenUpdates)|qual(R(ects|anges)|Sizes|Points)|raseRect|xtraRefCount)|F(ileTypeForHFSTypeCode|ullUserName|r(ee(MapTable|HashTable)|ame(Rect(WithWidth(UsingOperation)?)?|Address)))|Wi(ndowList(ForContext)?|dth)|Lo(cationInRange|g(v|PageSize)?)|A(ccessibility(R(oleDescription(ForUIElement)?|aiseBadArgumentException)|Unignored(Children(ForOnlyChild)?|Descendant|Ancestor)|PostNotification|ActionDescription)|pplication(Main|Load)|vailableWindowDepths|ll(MapTable(Values|Keys)|HashTableObjects|ocate(MemoryPages|Collectable|Object)))))\\b" - }, - { - "match": "\\bNS(RuleEditor|G(arbageCollector|radient)|MapTable|HashTable|Co(ndition|llectionView(Item)?)|T(oolbarItemGroup|extInputClient|r(eeNode|ackingArea))|InvocationOperation|Operation(Queue)?|D(ictionaryController|ockTile)|P(ointer(Functions|Array)|athC(o(ntrol(Delegate)?|mponentCell)|ell(Delegate)?)|r(intPanelAccessorizing|edicateEditor(RowTemplate)?))|ViewController|FastEnumeration|Animat(ionContext|ablePropertyContainer))\\b", - "name": "support.class.cocoa.leopard.objc" - }, - { - "match": "\\bNS(R(u(nLoop|ler(Marker|View))|e(sponder|cursiveLock|lativeSpecifier)|an(domSpecifier|geSpecifier))|G(etCommand|lyph(Generator|Storage|Info)|raphicsContext)|XML(Node|D(ocument|TD(Node)?)|Parser|Element)|M(iddleSpecifier|ov(ie(View)?|eCommand)|utable(S(tring|et)|C(haracterSet|opying)|IndexSet|D(ictionary|ata)|URLRequest|ParagraphStyle|A(ttributedString|rray))|e(ssagePort(NameServer)?|nu(Item(Cell)?|View)?|t(hodSignature|adata(Item|Query(ResultGroup|AttributeValueTuple)?)))|a(ch(BootstrapServer|Port)|trix))|B(itmapImageRep|ox|u(ndle|tton(Cell)?)|ezierPath|rowser(Cell)?)|S(hadow|c(anner|r(ipt(SuiteRegistry|C(o(ercionHandler|mmand(Description)?)|lassDescription)|ObjectSpecifier|ExecutionContext|WhoseTest)|oll(er|View)|een))|t(epper(Cell)?|atus(Bar|Item)|r(ing|eam))|imple(HorizontalTypesetter|CString)|o(cketPort(NameServer)?|und|rtDescriptor)|p(e(cifierTest|ech(Recognizer|Synthesizer)|ll(Server|Checker))|litView)|e(cureTextField(Cell)?|t(Command)?|archField(Cell)?|rializer|gmentedC(ontrol|ell))|lider(Cell)?|avePanel)|H(ost|TTP(Cookie(Storage)?|URLResponse)|elpManager)|N(ib(Con(nector|trolConnector)|OutletConnector)?|otification(Center|Queue)?|u(ll|mber(Formatter)?)|etService(Browser)?|ameSpecifier)|C(ha(ngeSpelling|racterSet)|o(n(stantString|nection|trol(ler)?|ditionLock)|d(ing|er)|unt(Command|edSet)|pying|lor(Space|P(ick(ing(Custom|Default)|er)|anel)|Well|List)?|m(p(oundPredicate|arisonPredicate)|boBox(Cell)?))|u(stomImageRep|rsor)|IImageRep|ell|l(ipView|o(seCommand|neCommand)|assDescription)|a(ched(ImageRep|URLResponse)|lendar(Date)?)|reateCommand)|T(hread|ypesetter|ime(Zone|r)|o(olbar(Item(Validations)?)?|kenField(Cell)?)|ext(Block|Storage|Container|Tab(le(Block)?)?|Input|View|Field(Cell)?|List|Attachment(Cell)?)?|a(sk|b(le(Header(Cell|View)|Column|View)|View(Item)?))|reeController)|I(n(dex(S(pecifier|et)|Path)|put(Manager|S(tream|erv(iceProvider|er(MouseTracker)?)))|vocation)|gnoreMisspelledWords|mage(Rep|Cell|View)?)|O(ut(putStream|lineView)|pen(GL(Context|Pixel(Buffer|Format)|View)|Panel)|bj(CTypeSerializationCallBack|ect(Controller)?))|D(i(st(antObject(Request)?|ributed(NotificationCenter|Lock))|ctionary|rectoryEnumerator)|ocument(Controller)?|e(serializer|cimalNumber(Behaviors|Handler)?|leteCommand)|at(e(Components|Picker(Cell)?|Formatter)?|a)|ra(wer|ggingInfo))|U(ser(InterfaceValidations|Defaults(Controller)?)|RL(Re(sponse|quest)|Handle(Client)?|C(onnection|ache|redential(Storage)?)|Download(Delegate)?|Prot(ocol(Client)?|ectionSpace)|AuthenticationChallenge(Sender)?)?|n(iqueIDSpecifier|doManager|archiver))|P(ipe|o(sitionalSpecifier|pUpButton(Cell)?|rt(Message|NameServer|Coder)?)|ICTImageRep|ersistentDocument|DFImageRep|a(steboard|nel|ragraphStyle|geLayout)|r(int(Info|er|Operation|Panel)|o(cessInfo|tocolChecker|perty(Specifier|ListSerialization)|gressIndicator|xy)|edicate))|E(numerator|vent|PSImageRep|rror|x(ception|istsCommand|pression))|V(iew(Animation)?|al(idated(ToobarItem|UserInterfaceItem)|ue(Transformer)?))|Keyed(Unarchiver|Archiver)|Qui(ckDrawView|tCommand)|F(ile(Manager|Handle|Wrapper)|o(nt(Manager|Descriptor|Panel)?|rm(Cell|atter)))|W(hoseSpecifier|indow(Controller)?|orkspace)|L(o(c(k(ing)?|ale)|gicalTest)|evelIndicator(Cell)?|ayoutManager)|A(ssertionHandler|nimation|ctionCell|ttributedString|utoreleasePool|TSTypesetter|ppl(ication|e(Script|Event(Manager|Descriptor)))|ffineTransform|lert|r(chiver|ray(Controller)?)))\\b", - "name": "support.class.cocoa.objc" - }, - { - "match": "\\bNS(R(oundingMode|ule(Editor(RowType|NestingMode)|rOrientation)|e(questUserAttentionType|lativePosition))|G(lyphInscription|radientDrawingOptions)|XML(NodeKind|D(ocumentContentKind|TDNodeKind)|ParserError)|M(ultibyteGlyphPacking|apTableOptions)|B(itmapFormat|oxType|ezierPathElement|ackgroundStyle|rowserDropOperation)|S(tr(ing(CompareOptions|DrawingOptions|EncodingConversionOptions)|eam(Status|Event))|p(eechBoundary|litViewDividerStyle)|e(archPathD(irectory|omainMask)|gmentS(tyle|witchTracking))|liderType|aveOptions)|H(TTPCookieAcceptPolicy|ashTableOptions)|N(otification(SuspensionBehavior|Coalescing)|umberFormatter(RoundingMode|Behavior|Style|PadPosition)|etService(sError|Options))|C(haracterCollection|o(lor(RenderingIntent|SpaceModel|PanelMode)|mp(oundPredicateType|arisonPredicateModifier))|ellStateValue|al(culationError|endarUnit))|T(ypesetterControlCharacterAction|imeZoneNameStyle|e(stComparisonOperation|xt(Block(Dimension|V(erticalAlignment|alueType)|Layer)|TableLayoutAlgorithm|FieldBezelStyle))|ableView(SelectionHighlightStyle|ColumnAutoresizingStyle)|rackingAreaOptions)|I(n(sertionPosition|te(rfaceStyle|ger))|mage(RepLoadStatus|Scaling|CacheMode|FrameStyle|LoadStatus|Alignment))|Ope(nGLPixelFormatAttribute|rationQueuePriority)|Date(Picker(Mode|Style)|Formatter(Behavior|Style))|U(RL(RequestCachePolicy|HandleStatus|C(acheStoragePolicy|redentialPersistence))|Integer)|P(o(stingStyle|int(ingDeviceType|erFunctionsOptions)|pUpArrowPosition)|athStyle|r(int(ing(Orientation|PaginationMode)|erTableStatus|PanelOptions)|opertyList(MutabilityOptions|Format)|edicateOperatorType))|ExpressionType|KeyValue(SetMutationKind|Change)|QTMovieLoopMode|F(indPanel(SubstringMatchType|Action)|o(nt(RenderingMode|FamilyClass)|cusRingPlacement))|W(hoseSubelementIdentifier|ind(ingRule|ow(B(utton|ackingLocation)|SharingType|CollectionBehavior)))|L(ine(MovementDirection|SweepDirection|CapStyle|JoinStyle)|evelIndicatorStyle)|Animation(BlockingMode|Curve))\\b", - "name": "support.type.cocoa.leopard.objc" - }, - { - "match": "\\bC(I(Sampler|Co(ntext|lor)|Image(Accumulator)?|PlugIn(Registration)?|Vector|Kernel|Filter(Generator|Shape)?)|A(Renderer|MediaTiming(Function)?|BasicAnimation|ScrollLayer|Constraint(LayoutManager)?|T(iledLayer|extLayer|rans(ition|action))|OpenGLLayer|PropertyAnimation|KeyframeAnimation|Layer|A(nimation(Group)?|ction)))\\b", - "name": "support.class.quartz.objc" - }, - { - "match": "\\bC(G(Float|Point|Size|Rect)|IFormat|AConstraintAttribute)\\b", - "name": "support.type.quartz.objc" - }, - { - "match": "\\bNS(R(ect(Edge)?|ange)|G(lyph(Relation|LayoutMode)?|radientType)|M(odalSession|a(trixMode|p(Table|Enumerator)))|B(itmapImageFileType|orderType|uttonType|ezelStyle|ackingStoreType|rowserColumnResizingType)|S(cr(oll(er(Part|Arrow)|ArrowPosition)|eenAuxiliaryOpaque)|tringEncoding|ize|ocketNativeHandle|election(Granularity|Direction|Affinity)|wapped(Double|Float)|aveOperationType)|Ha(sh(Table|Enumerator)|ndler(2)?)|C(o(ntrol(Size|Tint)|mp(ositingOperation|arisonResult))|ell(State|Type|ImagePosition|Attribute))|T(hreadPrivate|ypesetterGlyphInfo|i(ckMarkPosition|tlePosition|meInterval)|o(ol(TipTag|bar(SizeMode|DisplayMode))|kenStyle)|IFFCompression|ext(TabType|Alignment)|ab(State|leViewDropOperation|ViewType)|rackingRectTag)|ImageInterpolation|Zone|OpenGL(ContextAuxiliary|PixelFormatAuxiliary)|D(ocumentChangeType|atePickerElementFlags|ra(werState|gOperation))|UsableScrollerParts|P(oint|r(intingPageOrder|ogressIndicator(Style|Th(ickness|readInfo))))|EventType|KeyValueObservingOptions|Fo(nt(SymbolicTraits|TraitMask|Action)|cusRingType)|W(indow(OrderingMode|Depth)|orkspace(IconCreationOptions|LaunchOptions)|ritingDirection)|L(ineBreakMode|ayout(Status|Direction))|A(nimation(Progress|Effect)|ppl(ication(TerminateReply|DelegateReply|PrintReply)|eEventManagerSuspensionID)|ffineTransformStruct|lertStyle))\\b", - "name": "support.type.cocoa.objc" - }, - { - "match": "\\bNS(NotFound|Ordered(Ascending|Descending|Same))\\b", - "name": "support.constant.cocoa.objc" - }, - { - "match": "\\bNS(MenuDidBeginTracking|ViewDidUpdateTrackingAreas)?Notification\\b", - "name": "support.constant.notification.cocoa.leopard.objc" - }, - { - "match": "\\bNS(Menu(Did(RemoveItem|SendAction|ChangeItem|EndTracking|AddItem)|WillSendAction)|S(ystemColorsDidChange|plitView(DidResizeSubviews|WillResizeSubviews))|C(o(nt(extHelpModeDid(Deactivate|Activate)|rolT(intDidChange|extDid(BeginEditing|Change|EndEditing)))|lor(PanelColorDidChange|ListDidChange)|mboBox(Selection(IsChanging|DidChange)|Will(Dismiss|PopUp)))|lassDescriptionNeededForClass)|T(oolbar(DidRemoveItem|WillAddItem)|ext(Storage(DidProcessEditing|WillProcessEditing)|Did(BeginEditing|Change|EndEditing)|View(DidChange(Selection|TypingAttributes)|WillChangeNotifyingTextView))|ableView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)))|ImageRepRegistryDidChange|OutlineView(Selection(IsChanging|DidChange)|ColumnDid(Resize|Move)|Item(Did(Collapse|Expand)|Will(Collapse|Expand)))|Drawer(Did(Close|Open)|Will(Close|Open))|PopUpButton(CellWillPopUp|WillPopUp)|View(GlobalFrameDidChange|BoundsDidChange|F(ocusDidChange|rameDidChange))|FontSetChanged|W(indow(Did(Resi(ze|gn(Main|Key))|M(iniaturize|ove)|Become(Main|Key)|ChangeScreen(|Profile)|Deminiaturize|Update|E(ndSheet|xpose))|Will(M(iniaturize|ove)|BeginSheet|Close))|orkspace(SessionDid(ResignActive|BecomeActive)|Did(Mount|TerminateApplication|Unmount|PerformFileOperation|Wake|LaunchApplication)|Will(Sleep|Unmount|PowerOff|LaunchApplication)))|A(ntialiasThresholdChanged|ppl(ication(Did(ResignActive|BecomeActive|Hide|ChangeScreenParameters|U(nhide|pdate)|FinishLaunching)|Will(ResignActive|BecomeActive|Hide|Terminate|U(nhide|pdate)|FinishLaunching))|eEventManagerWillProcessFirstEvent)))Notification\\b", - "name": "support.constant.notification.cocoa.objc" - }, - { - "match": "\\bNS(RuleEditor(RowType(Simple|Compound)|NestingMode(Si(ngle|mple)|Compound|List))|GradientDraws(BeforeStartingLocation|AfterEndingLocation)|M(inusSetExpressionType|a(chPortDeallocate(ReceiveRight|SendRight|None)|pTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality)))|B(oxCustom|undleExecutableArchitecture(X86|I386|PPC(64)?)|etweenPredicateOperatorType|ackgroundStyle(Raised|Dark|L(ight|owered)))|S(tring(DrawingTruncatesLastVisibleLine|EncodingConversion(ExternalRepresentation|AllowLossy))|ubqueryExpressionType|p(e(ech(SentenceBoundary|ImmediateBoundary|WordBoundary)|llingState(GrammarFlag|SpellingFlag))|litViewDividerStyleThi(n|ck))|e(rvice(RequestTimedOutError|M(iscellaneousError|alformedServiceDictionaryError)|InvalidPasteboardDataError|ErrorM(inimum|aximum)|Application(NotFoundError|LaunchFailedError))|gmentStyle(Round(Rect|ed)|SmallSquare|Capsule|Textured(Rounded|Square)|Automatic)))|H(UDWindowMask|ashTable(StrongMemory|CopyIn|ZeroingWeakMemory|ObjectPointerPersonality))|N(oModeColorPanel|etServiceNoAutoRename)|C(hangeRedone|o(ntainsPredicateOperatorType|l(orRenderingIntent(RelativeColorimetric|Saturation|Default|Perceptual|AbsoluteColorimetric)|lectorDisabledOption))|ellHit(None|ContentArea|TrackableArea|EditableTextArea))|T(imeZoneNameStyle(S(hort(Standard|DaylightSaving)|tandard)|DaylightSaving)|extFieldDatePickerStyle|ableViewSelectionHighlightStyle(Regular|SourceList)|racking(Mouse(Moved|EnteredAndExited)|CursorUpdate|InVisibleRect|EnabledDuringMouseDrag|A(ssumeInside|ctive(In(KeyWindow|ActiveApp)|WhenFirstResponder|Always))))|I(n(tersectSetExpressionType|dexedColorSpaceModel)|mageScale(None|Proportionally(Down|UpOrDown)|AxesIndependently))|Ope(nGLPFAAllowOfflineRenderers|rationQueue(DefaultMaxConcurrentOperationCount|Priority(High|Normal|Very(High|Low)|Low)))|D(iacriticInsensitiveSearch|ownloadsDirectory)|U(nionSetExpressionType|TF(16(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)|32(BigEndianStringEncoding|StringEncoding|LittleEndianStringEncoding)))|P(ointerFunctions(Ma(chVirtualMemory|llocMemory)|Str(ongMemory|uctPersonality)|C(StringPersonality|opyIn)|IntegerPersonality|ZeroingWeakMemory|O(paque(Memory|Personality)|bjectP(ointerPersonality|ersonality)))|at(hStyle(Standard|NavigationBar|PopUp)|ternColorSpaceModel)|rintPanelShows(Scaling|Copies|Orientation|P(a(perSize|ge(Range|SetupAccessory))|review)))|Executable(RuntimeMismatchError|NotLoadableError|ErrorM(inimum|aximum)|L(inkError|oadError)|ArchitectureMismatchError)|KeyValueObservingOption(Initial|Prior)|F(i(ndPanelSubstringMatchType(StartsWith|Contains|EndsWith|FullWord)|leRead(TooLargeError|UnknownStringEncodingError))|orcedOrderingSearch)|Wi(ndow(BackingLocation(MainMemory|Default|VideoMemory)|Sharing(Read(Only|Write)|None)|CollectionBehavior(MoveToActiveSpace|CanJoinAllSpaces|Default))|dthInsensitiveSearch)|AggregateExpressionType)\\b", - "name": "support.constant.cocoa.leopard.objc" - }, - { - "match": "\\bNS(R(GB(ModeColorPanel|ColorSpaceModel)|ight(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey)|ound(RectBezelStyle|Bankers|ed(BezelStyle|TokenStyle|DisclosureBezelStyle)|Down|Up|Plain|Line(CapStyle|JoinStyle))|un(StoppedResponse|ContinuesResponse|AbortedResponse)|e(s(izableWindowMask|et(CursorRectsRunLoopOrdering|FunctionKey))|ce(ssedBezelStyle|iver(sCantHandleCommandScriptError|EvaluationScriptError))|turnTextMovement|doFunctionKey|quiredArgumentsMissingScriptError|l(evancyLevelIndicatorStyle|ative(Before|After))|gular(SquareBezelStyle|ControlSize)|moveTraitFontAction)|a(n(domSubelement|geDateMode)|tingLevelIndicatorStyle|dio(ModeMatrix|Button)))|G(IFFileType|lyph(Below|Inscribe(B(elow|ase)|Over(strike|Below)|Above)|Layout(WithPrevious|A(tAPoint|gainstAPoint))|A(ttribute(BidiLevel|Soft|Inscribe|Elastic)|bove))|r(ooveBorder|eaterThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|a(y(ModeColorPanel|ColorSpaceModel)|dient(None|Con(cave(Strong|Weak)|vex(Strong|Weak)))|phiteControlTint)))|XML(N(o(tationDeclarationKind|de(CompactEmptyElement|IsCDATA|OptionsNone|Use(SingleQuotes|DoubleQuotes)|Pre(serve(NamespaceOrder|C(haracterReferences|DATA)|DTD|Prefixes|E(ntities|mptyElements)|Quotes|Whitespace|A(ttributeOrder|ll))|ttyPrint)|ExpandEmptyElement))|amespaceKind)|CommentKind|TextKind|InvalidKind|D(ocument(X(MLKind|HTMLKind|Include)|HTMLKind|T(idy(XML|HTML)|extKind)|IncludeContentTypeDeclaration|Validate|Kind)|TDKind)|P(arser(GTRequiredError|XMLDeclNot(StartedError|FinishedError)|Mi(splaced(XMLDeclarationError|CDATAEndStringError)|xedContentDeclNot(StartedError|FinishedError))|S(t(andaloneValueError|ringNot(StartedError|ClosedError))|paceRequiredError|eparatorRequiredError)|N(MTOKENRequiredError|o(t(ationNot(StartedError|FinishedError)|WellBalancedError)|DTDError)|amespaceDeclarationError|AMERequiredError)|C(haracterRef(In(DTDError|PrologError|EpilogError)|AtEOFError)|o(nditionalSectionNot(StartedError|FinishedError)|mment(NotFinishedError|ContainsDoubleHyphenError))|DATANotFinishedError)|TagNameMismatchError|In(ternalError|valid(HexCharacterRefError|C(haracter(RefError|InEntityError|Error)|onditionalSectionError)|DecimalCharacterRefError|URIError|Encoding(NameError|Error)))|OutOfMemoryError|D(ocumentStartError|elegateAbortedParseError|OCTYPEDeclNotFinishedError)|U(RI(RequiredError|FragmentError)|n(declaredEntityError|parsedEntityError|knownEncodingError|finishedTagError))|P(CDATARequiredError|ublicIdentifierRequiredError|arsedEntityRef(MissingSemiError|NoNameError|In(Internal(SubsetError|Error)|PrologError|EpilogError)|AtEOFError)|r(ocessingInstructionNot(StartedError|FinishedError)|ematureDocumentEndError))|E(n(codingNotSupportedError|tity(Ref(In(DTDError|PrologError|EpilogError)|erence(MissingSemiError|WithoutNameError)|LoopError|AtEOFError)|BoundaryError|Not(StartedError|FinishedError)|Is(ParameterError|ExternalError)|ValueRequiredError))|qualExpectedError|lementContentDeclNot(StartedError|FinishedError)|xt(ernalS(tandaloneEntityError|ubsetNotFinishedError)|raContentError)|mptyDocumentError)|L(iteralNot(StartedError|FinishedError)|T(RequiredError|SlashRequiredError)|essThanSymbolInAttributeError)|Attribute(RedefinedError|HasNoValueError|Not(StartedError|FinishedError)|ListNot(StartedError|FinishedError)))|rocessingInstructionKind)|E(ntity(GeneralKind|DeclarationKind|UnparsedKind|P(ar(sedKind|ameterKind)|redefined))|lement(Declaration(MixedKind|UndefinedKind|E(lementKind|mptyKind)|Kind|AnyKind)|Kind))|Attribute(N(MToken(sKind|Kind)|otationKind)|CDATAKind|ID(Ref(sKind|Kind)|Kind)|DeclarationKind|En(tit(yKind|iesKind)|umerationKind)|Kind))|M(i(n(XEdge|iaturizableWindowMask|YEdge|uteCalendarUnit)|terLineJoinStyle|ddleSubelement|xedState)|o(nthCalendarUnit|deSwitchFunctionKey|use(Moved(Mask)?|E(ntered(Mask)?|ventSubtype|xited(Mask)?))|veToBezierPathElement|mentary(ChangeButton|Push(Button|InButton)|Light(Button)?))|enuFunctionKey|a(c(intoshInterfaceStyle|OSRomanStringEncoding)|tchesPredicateOperatorType|ppedRead|x(XEdge|YEdge))|ACHOperatingSystem)|B(MPFileType|o(ttomTabsBezelBorder|ldFontMask|rderlessWindowMask|x(Se(condary|parator)|OldStyle|Primary))|uttLineCapStyle|e(zelBorder|velLineJoinStyle|low(Bottom|Top)|gin(sWith(Comparison|PredicateOperatorType)|FunctionKey))|lueControlTint|ack(spaceCharacter|tabTextMovement|ingStore(Retained|Buffered|Nonretained)|TabCharacter|wardsSearch|groundTab)|r(owser(NoColumnResizing|UserColumnResizing|AutoColumnResizing)|eakFunctionKey))|S(h(ift(JISStringEncoding|KeyMask)|ow(ControlGlyphs|InvisibleGlyphs)|adowlessSquareBezelStyle)|y(s(ReqFunctionKey|tem(D(omainMask|efined(Mask)?)|FunctionKey))|mbolStringEncoding)|c(a(nnedOption|le(None|ToFit|Proportionally))|r(oll(er(NoPart|Increment(Page|Line|Arrow)|Decrement(Page|Line|Arrow)|Knob(Slot)?|Arrows(M(inEnd|axEnd)|None|DefaultSetting))|Wheel(Mask)?|LockFunctionKey)|eenChangedEventType))|t(opFunctionKey|r(ingDrawing(OneShot|DisableScreenFontSubstitution|Uses(DeviceMetrics|FontLeading|LineFragmentOrigin))|eam(Status(Reading|NotOpen|Closed|Open(ing)?|Error|Writing|AtEnd)|Event(Has(BytesAvailable|SpaceAvailable)|None|OpenCompleted|E(ndEncountered|rrorOccurred)))))|i(ngle(DateMode|UnderlineStyle)|ze(DownFontAction|UpFontAction))|olarisOperatingSystem|unOSOperatingSystem|pecialPageOrder|e(condCalendarUnit|lect(By(Character|Paragraph|Word)|i(ng(Next|Previous)|onAffinity(Downstream|Upstream))|edTab|FunctionKey)|gmentSwitchTracking(Momentary|Select(One|Any)))|quareLineCapStyle|witchButton|ave(ToOperation|Op(tions(Yes|No|Ask)|eration)|AsOperation)|mall(SquareBezelStyle|C(ontrolSize|apsFontMask)|IconButtonBezelStyle))|H(ighlightModeMatrix|SBModeColorPanel|o(ur(Minute(SecondDatePickerElementFlag|DatePickerElementFlag)|CalendarUnit)|rizontalRuler|meFunctionKey)|TTPCookieAcceptPolicy(Never|OnlyFromMainDocumentDomain|Always)|e(lp(ButtonBezelStyle|KeyMask|FunctionKey)|avierFontAction)|PUXOperatingSystem)|Year(MonthDa(yDatePickerElementFlag|tePickerElementFlag)|CalendarUnit)|N(o(n(StandardCharacterSetFontMask|ZeroWindingRule|activatingPanelMask|LossyASCIIStringEncoding)|Border|t(ification(SuspensionBehavior(Hold|Coalesce|D(eliverImmediately|rop))|NoCoalescing|CoalescingOn(Sender|Name)|DeliverImmediately|PostToAllSessions)|PredicateType|EqualToPredicateOperatorType)|S(cr(iptError|ollerParts)|ubelement|pecifierError)|CellMask|T(itle|opLevelContainersSpecifierError|abs(BezelBorder|NoBorder|LineBorder))|I(nterfaceStyle|mage)|UnderlineStyle|FontChangeAction)|u(ll(Glyph|CellType)|m(eric(Search|PadKeyMask)|berFormatter(Round(Half(Down|Up|Even)|Ceiling|Down|Up|Floor)|Behavior(10|Default)|S(cientificStyle|pellOutStyle)|NoStyle|CurrencyStyle|DecimalStyle|P(ercentStyle|ad(Before(Suffix|Prefix)|After(Suffix|Prefix))))))|e(t(Services(BadArgumentError|NotFoundError|C(ollisionError|ancelledError)|TimeoutError|InvalidError|UnknownError|ActivityInProgress)|workDomainMask)|wlineCharacter|xt(StepInterfaceStyle|FunctionKey))|EXTSTEPStringEncoding|a(t(iveShortGlyphPacking|uralTextAlignment)|rrowFontMask))|C(hange(ReadOtherContents|GrayCell(Mask)?|BackgroundCell(Mask)?|Cleared|Done|Undone|Autosaved)|MYK(ModeColorPanel|ColorSpaceModel)|ircular(BezelStyle|Slider)|o(n(stantValueExpressionType|t(inuousCapacityLevelIndicatorStyle|entsCellMask|ain(sComparison|erSpecifierError)|rol(Glyph|KeyMask))|densedFontMask)|lor(Panel(RGBModeMask|GrayModeMask|HSBModeMask|C(MYKModeMask|olorListModeMask|ustomPaletteModeMask|rayonModeMask)|WheelModeMask|AllModesMask)|ListModeColorPanel)|reServiceDirectory|m(p(osite(XOR|Source(In|O(ut|ver)|Atop)|Highlight|C(opy|lear)|Destination(In|O(ut|ver)|Atop)|Plus(Darker|Lighter))|ressedFontMask)|mandKeyMask))|u(stom(SelectorPredicateOperatorType|PaletteModeColorPanel)|r(sor(Update(Mask)?|PointingDevice)|veToBezierPathElement))|e(nterT(extAlignment|abStopType)|ll(State|H(ighlighted|as(Image(Horizontal|OnLeftOrBottom)|OverlappingImage))|ChangesContents|Is(Bordered|InsetButton)|Disabled|Editable|LightsBy(Gray|Background|Contents)|AllowsMixedState))|l(ipPagination|o(s(ePathBezierPathElement|ableWindowMask)|ckAndCalendarDatePickerStyle)|ear(ControlTint|DisplayFunctionKey|LineFunctionKey))|a(seInsensitive(Search|PredicateOption)|n(notCreateScriptCommandError|cel(Button|TextMovement))|chesDirectory|lculation(NoError|Overflow|DivideByZero|Underflow|LossOfPrecision)|rriageReturnCharacter)|r(itical(Request|AlertStyle)|ayonModeColorPanel))|T(hick(SquareBezelStyle|erSquareBezelStyle)|ypesetter(Behavior|HorizontalTabAction|ContainerBreakAction|ZeroAdvancementAction|OriginalBehavior|ParagraphBreakAction|WhitespaceAction|L(ineBreakAction|atestBehavior))|i(ckMark(Right|Below|Left|Above)|tledWindowMask|meZoneDatePickerElementFlag)|o(olbarItemVisibilityPriority(Standard|High|User|Low)|pTabsBezelBorder|ggleButton)|IFF(Compression(N(one|EXT)|CCITTFAX(3|4)|OldJPEG|JPEG|PackBits|LZW)|FileType)|e(rminate(Now|Cancel|Later)|xt(Read(InapplicableDocumentTypeError|WriteErrorM(inimum|aximum))|Block(M(i(nimum(Height|Width)|ddleAlignment)|a(rgin|ximum(Height|Width)))|B(o(ttomAlignment|rder)|aselineAlignment)|Height|TopAlignment|P(ercentageValueType|adding)|Width|AbsoluteValueType)|StorageEdited(Characters|Attributes)|CellType|ured(RoundedBezelStyle|BackgroundWindowMask|SquareBezelStyle)|Table(FixedLayoutAlgorithm|AutomaticLayoutAlgorithm)|Field(RoundedBezel|SquareBezel|AndStepperDatePickerStyle)|WriteInapplicableDocumentTypeError|ListPrependEnclosingMarker))|woByteGlyphPacking|ab(Character|TextMovement|le(tP(oint(Mask|EventSubtype)?|roximity(Mask|EventSubtype)?)|Column(NoResizing|UserResizingMask|AutoresizingMask)|View(ReverseSequentialColumnAutoresizingStyle|GridNone|S(olid(HorizontalGridLineMask|VerticalGridLineMask)|equentialColumnAutoresizingStyle)|NoColumnAutoresizing|UniformColumnAutoresizingStyle|FirstColumnOnlyAutoresizingStyle|LastColumnOnlyAutoresizingStyle)))|rackModeMatrix)|I(n(sert(CharFunctionKey|FunctionKey|LineFunctionKey)|t(Type|ernalS(criptError|pecifierError))|dexSubelement|validIndexSpecifierError|formational(Request|AlertStyle)|PredicateOperatorType)|talicFontMask|SO(2022JPStringEncoding|Latin(1StringEncoding|2StringEncoding))|dentityMappingCharacterCollection|llegalTextMovement|mage(R(ight|ep(MatchesDevice|LoadStatus(ReadingHeader|Completed|InvalidData|Un(expectedEOF|knownType)|WillNeedAllData)))|Below|C(ellType|ache(BySize|Never|Default|Always))|Interpolation(High|None|Default|Low)|O(nly|verlaps)|Frame(Gr(oove|ayBezel)|Button|None|Photo)|L(oadStatus(ReadError|C(ompleted|ancelled)|InvalidData|UnexpectedEOF)|eft)|A(lign(Right|Bottom(Right|Left)?|Center|Top(Right|Left)?|Left)|bove)))|O(n(State|eByteGlyphPacking|OffButton|lyScrollerArrows)|ther(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|TextMovement)|SF1OperatingSystem|pe(n(GL(GO(Re(setLibrary|tainRenderers)|ClearFormatCache|FormatCacheSize)|PFA(R(obust|endererID)|M(inimumPolicy|ulti(sample|Screen)|PSafe|aximumPolicy)|BackingStore|S(creenMask|te(ncilSize|reo)|ingleRenderer|upersample|ample(s|Buffers|Alpha))|NoRecovery|C(o(lor(Size|Float)|mpliant)|losestPolicy)|OffScreen|D(oubleBuffer|epthSize)|PixelBuffer|VirtualScreenCount|FullScreen|Window|A(cc(umSize|elerated)|ux(Buffers|DepthStencil)|l(phaSize|lRenderers))))|StepUnicodeReservedBase)|rationNotSupportedForKeyS(criptError|pecifierError))|ffState|KButton|rPredicateType|bjC(B(itfield|oolType)|S(hortType|tr(ingType|uctType)|electorType)|NoType|CharType|ObjectType|DoubleType|UnionType|PointerType|VoidType|FloatType|Long(Type|longType)|ArrayType))|D(i(s(c(losureBezelStyle|reteCapacityLevelIndicatorStyle)|playWindowRunLoopOrdering)|acriticInsensitivePredicateOption|rect(Selection|PredicateModifier))|o(c(ModalWindowMask|ument(Directory|ationDirectory))|ubleType|wn(TextMovement|ArrowFunctionKey))|e(s(cendingPageOrder|ktopDirectory)|cimalTabStopType|v(ice(NColorSpaceModel|IndependentModifierFlagsMask)|eloper(Directory|ApplicationDirectory))|fault(ControlTint|TokenStyle)|lete(Char(acter|FunctionKey)|FunctionKey|LineFunctionKey)|moApplicationDirectory)|a(yCalendarUnit|teFormatter(MediumStyle|Behavior(10|Default)|ShortStyle|NoStyle|FullStyle|LongStyle))|ra(wer(Clos(ingState|edState)|Open(ingState|State))|gOperation(Generic|Move|None|Copy|Delete|Private|Every|Link|All)))|U(ser(CancelledError|D(irectory|omainMask)|FunctionKey)|RL(Handle(NotLoaded|Load(Succeeded|InProgress|Failed))|CredentialPersistence(None|Permanent|ForSession))|n(scaledWindowMask|cachedRead|i(codeStringEncoding|talicFontMask|fiedTitleAndToolbarWindowMask)|d(o(CloseGroupingRunLoopOrdering|FunctionKey)|e(finedDateComponent|rline(Style(Single|None|Thick|Double)|Pattern(Solid|D(ot|ash(Dot(Dot)?)?)))))|known(ColorSpaceModel|P(ointingDevice|ageOrder)|KeyS(criptError|pecifierError))|boldFontMask)|tilityWindowMask|TF8StringEncoding|p(dateWindowsRunLoopOrdering|TextMovement|ArrowFunctionKey))|J(ustifiedTextAlignment|PEG(2000FileType|FileType)|apaneseEUC(GlyphPacking|StringEncoding))|P(o(s(t(Now|erFontMask|WhenIdle|ASAP)|iti(on(Replace|Be(fore|ginning)|End|After)|ve(IntType|DoubleType|FloatType)))|pUp(NoArrow|ArrowAt(Bottom|Center))|werOffEventType|rtraitOrientation)|NGFileType|ush(InCell(Mask)?|OnPushOffButton)|e(n(TipMask|UpperSideMask|PointingDevice|LowerSideMask)|riodic(Mask)?)|P(S(caleField|tatus(Title|Field)|aveButton)|N(ote(Title|Field)|ame(Title|Field))|CopiesField|TitleField|ImageButton|OptionsButton|P(a(perFeedButton|ge(Range(To|From)|ChoiceMatrix))|reviewButton)|LayoutButton)|lainTextTokenStyle|a(useFunctionKey|ragraphSeparatorCharacter|ge(DownFunctionKey|UpFunctionKey))|r(int(ing(ReplyLater|Success|Cancelled|Failure)|ScreenFunctionKey|erTable(NotFound|OK|Error)|FunctionKey)|o(p(ertyList(XMLFormat|MutableContainers(AndLeaves)?|BinaryFormat|Immutable|OpenStepFormat)|rietaryStringEncoding)|gressIndicator(BarStyle|SpinningStyle|Preferred(SmallThickness|Thickness|LargeThickness|AquaThickness)))|e(ssedTab|vFunctionKey))|L(HeightForm|CancelButton|TitleField|ImageButton|O(KButton|rientationMatrix)|UnitsButton|PaperNameButton|WidthForm))|E(n(terCharacter|d(sWith(Comparison|PredicateOperatorType)|FunctionKey))|v(e(nOddWindingRule|rySubelement)|aluatedObjectExpressionType)|qualTo(Comparison|PredicateOperatorType)|ra(serPointingDevice|CalendarUnit|DatePickerElementFlag)|x(clude(10|QuickDrawElementsIconCreationOption)|pandedFontMask|ecuteFunctionKey))|V(i(ew(M(in(XMargin|YMargin)|ax(XMargin|YMargin))|HeightSizable|NotSizable|WidthSizable)|aPanelFontAction)|erticalRuler|a(lidationErrorM(inimum|aximum)|riableExpressionType))|Key(SpecifierEvaluationScriptError|Down(Mask)?|Up(Mask)?|PathExpressionType|Value(MinusSetMutation|SetSetMutation|Change(Re(placement|moval)|Setting|Insertion)|IntersectSetMutation|ObservingOption(New|Old)|UnionSetMutation|ValidationError))|QTMovie(NormalPlayback|Looping(BackAndForthPlayback|Playback))|F(1(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|7FunctionKey|i(nd(PanelAction(Replace(A(ndFind|ll(InSelection)?))?|S(howFindPanel|e(tFindString|lectAll(InSelection)?))|Next|Previous)|FunctionKey)|tPagination|le(Read(No(SuchFileError|PermissionError)|CorruptFileError|In(validFileNameError|applicableStringEncodingError)|Un(supportedSchemeError|knownError))|HandlingPanel(CancelButton|OKButton)|NoSuchFileError|ErrorM(inimum|aximum)|Write(NoPermissionError|In(validFileNameError|applicableStringEncodingError)|OutOfSpaceError|Un(supportedSchemeError|knownError))|LockingError)|xedPitchFontMask)|2(1FunctionKey|7FunctionKey|2FunctionKey|8FunctionKey|3FunctionKey|9FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey|6FunctionKey)|o(nt(Mo(noSpaceTrait|dernSerifsClass)|BoldTrait|S(ymbolicClass|criptsClass|labSerifsClass|ansSerifClass)|C(o(ndensedTrait|llectionApplicationOnlyMask)|larendonSerifsClass)|TransitionalSerifsClass|I(ntegerAdvancementsRenderingMode|talicTrait)|O(ldStyleSerifsClass|rnamentalsClass)|DefaultRenderingMode|U(nknownClass|IOptimizedTrait)|Panel(S(hadowEffectModeMask|t(andardModesMask|rikethroughEffectModeMask)|izeModeMask)|CollectionModeMask|TextColorEffectModeMask|DocumentColorEffectModeMask|UnderlineEffectModeMask|FaceModeMask|All(ModesMask|EffectsModeMask))|ExpandedTrait|VerticalTrait|F(amilyClassMask|reeformSerifsClass)|Antialiased(RenderingMode|IntegerAdvancementsRenderingMode))|cusRing(Below|Type(None|Default|Exterior)|Only|Above)|urByteGlyphPacking|rm(attingError(M(inimum|aximum))?|FeedCharacter))|8FunctionKey|unction(ExpressionType|KeyMask)|3(1FunctionKey|2FunctionKey|3FunctionKey|4FunctionKey|5FunctionKey|FunctionKey|0FunctionKey)|9FunctionKey|4FunctionKey|P(RevertButton|S(ize(Title|Field)|etButton)|CurrentField|Preview(Button|Field))|l(oat(ingPointSamplesBitmapFormat|Type)|agsChanged(Mask)?)|axButton|5FunctionKey|6FunctionKey)|W(heelModeColorPanel|indow(s(NTOperatingSystem|CP125(1StringEncoding|2StringEncoding|3StringEncoding|4StringEncoding|0StringEncoding)|95(InterfaceStyle|OperatingSystem))|M(iniaturizeButton|ovedEventType)|Below|CloseButton|ToolbarButton|ZoomButton|Out|DocumentIconButton|ExposedEventType|Above)|orkspaceLaunch(NewInstance|InhibitingBackgroundOnly|Default|PreferringClassic|WithoutA(ctivation|ddingToRecents)|A(sync|nd(Hide(Others)?|Print)|llowingClassicStartup))|eek(day(CalendarUnit|OrdinalCalendarUnit)|CalendarUnit)|a(ntsBidiLevels|rningAlertStyle)|r(itingDirection(RightToLeft|Natural|LeftToRight)|apCalendarComponents))|L(i(stModeMatrix|ne(Moves(Right|Down|Up|Left)|B(order|reakBy(C(harWrapping|lipping)|Truncating(Middle|Head|Tail)|WordWrapping))|S(eparatorCharacter|weep(Right|Down|Up|Left))|ToBezierPathElement|DoesntMove|arSlider)|teralSearch|kePredicateOperatorType|ghterFontAction|braryDirectory)|ocalDomainMask|e(ssThan(Comparison|OrEqualTo(Comparison|PredicateOperatorType)|PredicateOperatorType)|ft(Mouse(D(own(Mask)?|ragged(Mask)?)|Up(Mask)?)|T(ext(Movement|Alignment)|ab(sBezelBorder|StopType))|ArrowFunctionKey))|a(yout(RightToLeft|NotDone|CantFit|OutOfGlyphs|Done|LeftToRight)|ndscapeOrientation)|ABColorSpaceModel)|A(sc(iiWithDoubleByteEUCGlyphPacking|endingPageOrder)|n(y(Type|PredicateModifier|EventMask)|choredSearch|imation(Blocking|Nonblocking(Threaded)?|E(ffect(DisappearingItemDefault|Poof)|ase(In(Out)?|Out))|Linear)|dPredicateType)|t(Bottom|tachmentCharacter|omicWrite|Top)|SCIIStringEncoding|d(obe(GB1CharacterCollection|CNS1CharacterCollection|Japan(1CharacterCollection|2CharacterCollection)|Korea1CharacterCollection)|dTraitFontAction|minApplicationDirectory)|uto(saveOperation|Pagination)|pp(lication(SupportDirectory|D(irectory|e(fined(Mask)?|legateReply(Success|Cancel|Failure)|activatedEventType))|ActivatedEventType)|KitDefined(Mask)?)|l(ternateKeyMask|pha(ShiftKeyMask|NonpremultipliedBitmapFormat|FirstBitmapFormat)|ert(SecondButtonReturn|ThirdButtonReturn|OtherReturn|DefaultReturn|ErrorReturn|FirstButtonReturn|AlternateReturn)|l(ScrollerParts|DomainsMask|PredicateModifier|LibrariesDirectory|ApplicationsDirectory))|rgument(sWrongScriptError|EvaluationScriptError)|bove(Bottom|Top)|WTEventType))\\b", - "name": "support.constant.cocoa.objc" - }, - { - "include": "#c_lang" - }, - { - "include": "#bracketed_content" - } - ], - "repository": { - "bracketed_content": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.objc" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.objc" - } - }, - "name": "meta.bracketed.objc", - "patterns": [ - { - "begin": "(?=predicateWithFormat:)(?<=NSPredicate )(predicateWithFormat:)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objc" - }, - "2": { - "name": "punctuation.separator.arguments.objc" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.predicate.objc", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\bargument(Array|s)(:)", - "name": "support.function.any-method.name-of-parameter.objc" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\b\\w+(:)", - "name": "invalid.illegal.unknown-method.objc" - }, - { - "begin": "@\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "match": "\\b(AND|OR|NOT|IN)\\b", - "name": "keyword.operator.logical.predicate.cocoa.objc" - }, - { - "match": "\\b(ALL|ANY|SOME|NONE)\\b", - "name": "constant.language.predicate.cocoa.objc" - }, - { - "match": "\\b(NULL|NIL|SELF|TRUE|YES|FALSE|NO|FIRST|LAST|SIZE)\\b", - "name": "constant.language.predicate.cocoa.objc" - }, - { - "match": "\\b(MATCHES|CONTAINS|BEGINSWITH|ENDSWITH|BETWEEN)\\b", - "name": "keyword.operator.comparison.predicate.cocoa.objc" - }, - { - "match": "\\bC(ASEINSENSITIVE|I)\\b", - "name": "keyword.other.modifier.predicate.cocoa.objc" - }, - { - "match": "\\b(ANYKEY|SUBQUERY|CAST|TRUEPREDICATE|FALSEPREDICATE)\\b", - "name": "keyword.other.predicate.cocoa.objc" - }, - { - "match": "\\\\(\\\\|[abefnrtv'\"?]|[0-3]\\d{,2}|[4-7]\\d?|x[a-zA-Z0-9]+)", - "name": "constant.character.escape.objc" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objc" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "begin": "(?=\\w)(?<=[\\w\\])\"] )(\\w+(?:(:)|(?=\\])))", - "beginCaptures": { - "1": { - "name": "support.function.any-method.objc" - }, - "2": { - "name": "punctuation.separator.arguments.objc" - } - }, - "end": "(?=\\])", - "name": "meta.function-call.objc", - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.separator.arguments.objc" - } - }, - "match": "\\b\\w+(:)", - "name": "support.function.any-method.name-of-parameter.objc" - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#special_variables" - }, - { - "include": "#c_functions" - }, - { - "include": "$self" - } - ] - }, - "c_functions": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.whitespace.support.function.leading.objc" - }, - "2": { - "name": "support.function.C99.objc" - } - }, - "match": "(\\s*)\\b(hypot(f|l)?|s(scanf|ystem|nprintf|ca(nf|lb(n(f|l)?|ln(f|l)?))|i(n(h(f|l)?|f|l)?|gn(al|bit))|tr(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?)|error|pbrk|ftime|len|rchr|xfrm)|printf|et(jmp|vbuf|locale|buf)|qrt(f|l)?|w(scanf|printf)|rand)|n(e(arbyint(f|l)?|xt(toward(f|l)?|after(f|l)?))|an(f|l)?)|c(s(in(h(f|l)?|f|l)?|qrt(f|l)?)|cos(h(f)?|f|l)?|imag(f|l)?|t(ime|an(h(f|l)?|f|l)?)|o(s(h(f|l)?|f|l)?|nj(f|l)?|pysign(f|l)?)|p(ow(f|l)?|roj(f|l)?)|e(il(f|l)?|xp(f|l)?)|l(o(ck|g(f|l)?)|earerr)|a(sin(h(f|l)?|f|l)?|cos(h(f|l)?|f|l)?|tan(h(f|l)?|f|l)?|lloc|rg(f|l)?|bs(f|l)?)|real(f|l)?|brt(f|l)?)|t(ime|o(upper|lower)|an(h(f|l)?|f|l)?|runc(f|l)?|gamma(f|l)?|mp(nam|file))|i(s(space|n(ormal|an)|cntrl|inf|digit|u(nordered|pper)|p(unct|rint)|finite|w(space|c(ntrl|type)|digit|upper|p(unct|rint)|lower|al(num|pha)|graph|xdigit|blank)|l(ower|ess(equal|greater)?)|al(num|pha)|gr(eater(equal)?|aph)|xdigit|blank)|logb(f|l)?|max(div|abs))|di(v|fftime)|_Exit|unget(c|wc)|p(ow(f|l)?|ut(s|c(har)?|wc(har)?)|error|rintf)|e(rf(c(f|l)?|f|l)?|x(it|p(2(f|l)?|f|l|m1(f|l)?)?))|v(s(scanf|nprintf|canf|printf|w(scanf|printf))|printf|f(scanf|printf|w(scanf|printf))|w(scanf|printf)|a_(start|copy|end|arg))|qsort|f(s(canf|e(tpos|ek))|close|tell|open|dim(f|l)?|p(classify|ut(s|c|w(s|c))|rintf)|e(holdexcept|set(e(nv|xceptflag)|round)|clearexcept|testexcept|of|updateenv|r(aiseexcept|ror)|get(e(nv|xceptflag)|round))|flush|w(scanf|ide|printf|rite)|loor(f|l)?|abs(f|l)?|get(s|c|pos|w(s|c))|re(open|e|ad|xp(f|l)?)|m(in(f|l)?|od(f|l)?|a(f|l|x(f|l)?)?))|l(d(iv|exp(f|l)?)|o(ngjmp|cal(time|econv)|g(1(p(f|l)?|0(f|l)?)|2(f|l)?|f|l|b(f|l)?)?)|abs|l(div|abs|r(int(f|l)?|ound(f|l)?))|r(int(f|l)?|ound(f|l)?)|gamma(f|l)?)|w(scanf|c(s(s(tr|pn)|nc(py|at|mp)|c(spn|hr|oll|py|at|mp)|to(imax|d|u(l(l)?|max)|k|f|l(d|l)?|mbs)|pbrk|ftime|len|r(chr|tombs)|xfrm)|to(b|mb)|rtomb)|printf|mem(set|c(hr|py|mp)|move))|a(s(sert|ctime|in(h(f|l)?|f|l)?)|cos(h(f|l)?|f|l)?|t(o(i|f|l(l)?)|exit|an(h(f|l)?|2(f|l)?|f|l)?)|b(s|ort))|g(et(s|c(har)?|env|wc(har)?)|mtime)|r(int(f|l)?|ound(f|l)?|e(name|alloc|wind|m(ove|quo(f|l)?|ainder(f|l)?))|a(nd|ise))|b(search|towc)|m(odf(f|l)?|em(set|c(hr|py|mp)|move)|ktime|alloc|b(s(init|towcs|rtowcs)|towc|len|r(towc|len))))\\b" - }, - { - "captures": { - "1": { - "name": "punctuation.whitespace.function-call.leading.objc" - }, - "2": { - "name": "support.function.any-method.objc" - }, - "3": { - "name": "punctuation.definition.parameters.objc" - } - }, - "match": "(?x) (?: (?= \\s ) (?:(?<=else|new|return) | (?<!\\w)) (\\s+))?\n \t\t\t(\\b \n \t\t\t\t(?!(while|for|do|if|else|switch|catch|enumerate|return|r?iterate)\\s*\\()(?:(?!NS)[A-Za-z_][A-Za-z0-9_]*+\\b | :: )++ # actual name\n \t\t\t)\n \t\t\t \\s*(\\()", - "name": "meta.function-call.objc" - } - ] - }, - "c_lang": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled" - }, - { - "include": "#preprocessor-rule-disabled" - }, - { - "include": "#preprocessor-rule-conditional" - }, - { - "include": "#comments" - }, - { - "include": "#switch_statement" - }, - { - "match": "\\b(break|continue|do|else|for|goto|if|_Pragma|return|while)\\b", - "name": "keyword.control.objc" - }, - { - "include": "#storage_types" - }, - { - "match": "typedef", - "name": "keyword.other.typedef.objc" - }, - { - "match": "\\b(const|extern|register|restrict|static|volatile|inline)\\b", - "name": "storage.modifier.objc" - }, - { - "match": "\\bk[A-Z]\\w*\\b", - "name": "constant.other.variable.mac-classic.objc" - }, - { - "match": "\\bg[A-Z]\\w*\\b", - "name": "variable.other.readwrite.global.mac-classic.objc" - }, - { - "match": "\\bs[A-Z]\\w*\\b", - "name": "variable.other.readwrite.static.mac-classic.objc" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objc" - }, - { - "include": "#operators" - }, - { - "include": "#numbers" - }, - { - "include": "#strings" - }, - { - "begin": "(?x)\n^\\s* ((\\#)\\s*define) \\s+\t# define\n((?<id>[a-zA-Z_$][\\w$]*))\t # macro name\n(?:\n (\\()\n\t(\n\t \\s* \\g<id> \\s*\t\t # first argument\n\t ((,) \\s* \\g<id> \\s*)* # additional arguments\n\t (?:\\.\\.\\.)?\t\t\t# varargs ellipsis?\n\t)\n (\\))\n)?", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.define.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - }, - "3": { - "name": "entity.name.function.preprocessor.objc" - }, - "5": { - "name": "punctuation.definition.parameters.begin.objc" - }, - "6": { - "name": "variable.parameter.preprocessor.objc" - }, - "8": { - "name": "punctuation.separator.parameters.objc" - }, - "9": { - "name": "punctuation.definition.parameters.end.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.macro.objc", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "begin": "^\\s*((#)\\s*(error|warning))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.diagnostic.$3.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.diagnostic.objc", - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.single.objc", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "[^'\"]", - "end": "(?<!\\\\)(?=\\s*\\n)", - "name": "string.unquoted.single.objc", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "include": "#comments" - } - ] - } - ] - }, - { - "begin": "^\\s*((#)\\s*(include(?:_next)?|import))\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.$3.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.include.objc", - "patterns": [ - { - "include": "#line_continuation_character" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.include.objc" - }, - { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.other.lt-gt.include.objc" - } - ] - }, - { - "include": "#pragma-mark" - }, - { - "begin": "^\\s*((#)\\s*line)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.line.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*undef))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.undef.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objc" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "^\\s*(?:((#)\\s*pragma))\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.pragma.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=(?://|/\\*))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.pragma.objc", - "patterns": [ - { - "include": "#strings" - }, - { - "match": "[a-zA-Z_$][\\w\\-$]*", - "name": "entity.other.attribute-name.pragma.preprocessor.objc" - }, - { - "include": "#numbers" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "match": "\\b(u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t)\\b", - "name": "support.type.sys-types.objc" - }, - { - "match": "\\b(pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t)\\b", - "name": "support.type.pthread.objc" - }, - { - "match": "(?x) \\b\n(int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t\n|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t\n|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t\n|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t\n|uintmax_t|uintmax_t)\n\\b", - "name": "support.type.stdint.objc" - }, - { - "match": "\\b(noErr|kNilOptions|kInvalidID|kVariableLengthArray)\\b", - "name": "support.constant.mac-classic.objc" - }, - { - "match": "(?x) \\b\n(AbsoluteTime|Boolean|Byte|ByteCount|ByteOffset|BytePtr|CompTimeValue|ConstLogicalAddress|ConstStrFileNameParam\n|ConstStringPtr|Duration|Fixed|FixedPtr|Float32|Float32Point|Float64|Float80|Float96|FourCharCode|Fract|FractPtr\n|Handle|ItemCount|LogicalAddress|OptionBits|OSErr|OSStatus|OSType|OSTypePtr|PhysicalAddress|ProcessSerialNumber\n|ProcessSerialNumberPtr|ProcHandle|Ptr|ResType|ResTypePtr|ShortFixed|ShortFixedPtr|SignedByte|SInt16|SInt32|SInt64\n|SInt8|Size|StrFileName|StringHandle|StringPtr|TimeBase|TimeRecord|TimeScale|TimeValue|TimeValue64|UInt16|UInt32\n|UInt64|UInt8|UniChar|UniCharCount|UniCharCountPtr|UniCharPtr|UnicodeScalarValue|UniversalProcHandle|UniversalProcPtr\n|UnsignedFixed|UnsignedFixedPtr|UnsignedWide|UTF16Char|UTF32Char|UTF8Char)\n\\b", - "name": "support.type.mac-classic.objc" - }, - { - "match": "\\b([A-Za-z0-9_]+_t)\\b", - "name": "support.type.posix-reserved.objc" - }, - { - "include": "#block" - }, - { - "include": "#parens" - }, - { - "name": "meta.function.objc", - "begin": "(?<!\\w)(?!\\s*(?:not|compl|sizeof|not_eq|bitand|xor|bitor|and|or|and_eq|xor_eq|or_eq|alignof|alignas|_Alignof|_Alignas|while|for|do|if|else|goto|switch|return|break|case|continue|default|void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|NULL|true|false|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t|struct|union|enum|typedef|auto|register|static|extern|thread_local|inline|_Noreturn|const|volatile|restrict|_Atomic)\\s*\\()(?=[a-zA-Z_]\\w*\\s*\\()", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "#line_continuation_character" - }, - { - "name": "meta.bracket.square.access.objc", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))?(\\[)(?!\\])", - "beginCaptures": { - "1": { - "name": "variable.object.objc" - }, - "2": { - "name": "punctuation.definition.begin.bracket.square.objc" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.square.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "name": "storage.modifier.array.bracket.square.objc", - "match": "\\[\\s*\\]" - }, - { - "match": ";", - "name": "punctuation.terminator.statement.objc" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.objc" - } - ], - "repository": { - "probably_a_parameter": { - "match": "(?<=(?:[a-zA-Z_0-9] |[&*>\\]\\)]))\\s*([a-zA-Z_]\\w*)\\s*(?=(?:\\[\\]\\s*)?(?:,|\\)))", - "captures": { - "1": { - "name": "variable.parameter.probably.objc" - } - } - }, - "access-method": { - "name": "meta.function-call.member.objc", - "begin": "([a-zA-Z_][a-zA-Z_0-9]*|(?<=[\\]\\)]))\\s*(?:(\\.)|(->))((?:(?:[a-zA-Z_][a-zA-Z_0-9]*)\\s*(?:(?:\\.)|(?:->)))*)\\s*([a-zA-Z_][a-zA-Z_0-9]*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.object.objc" - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "punctuation.separator.dot-access.objc" - }, - { - "match": "->", - "name": "punctuation.separator.pointer-access.objc" - }, - { - "match": "[a-zA-Z_][a-zA-Z_0-9]*", - "name": "variable.object.objc" - }, - { - "name": "everything.else.objc", - "match": ".+" - } - ] - }, - "5": { - "name": "entity.name.function.member.objc" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "block": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "name": "meta.block.objc", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - }, - "block_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-block" - }, - { - "include": "#preprocessor-rule-disabled-block" - }, - { - "include": "#preprocessor-rule-conditional-block" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#c_function_call" - }, - { - "name": "meta.initialization.objc", - "begin": "(?x)\n(?:\n (?:\n\t(?=\\s)(?<!else|new|return)\n\t(?<=\\w) \\s+(and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas) # or word + space before name\n )\n)\n(\n (?:[A-Za-z_][A-Za-z0-9_]*+ | :: )++ # actual name\n |\n (?:(?<=operator) (?:[-*&<>=+!]+ | \\(\\) | \\[\\]))\n)\n\\s*(\\() # opening bracket", - "beginCaptures": { - "1": { - "name": "variable.other.objc" - }, - "2": { - "name": "punctuation.section.parens.begin.bracket.round.initialization.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.initialization.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - { - "include": "#parens-block" - }, - { - "include": "$base" - } - ] - }, - "c_function_call": { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(?=\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)", - "name": "meta.function-call.objc", - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "meta.toc-list.banner.block.objc" - } - }, - "match": "^/\\* =(\\s*.*?)\\s*= \\*/$\\n?", - "name": "comment.block.objc" - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.objc" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.objc" - } - }, - "name": "comment.block.objc" - }, - { - "captures": { - "1": { - "name": "meta.toc-list.banner.line.objc" - } - }, - "match": "^// =(\\s*.*?)\\s*=\\s*$\\n?", - "name": "comment.line.banner.objc" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objc" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objc" - } - }, - "end": "(?=\\n)", - "name": "comment.line.double-slash.objc", - "patterns": [ - { - "include": "#line_continuation_character" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "end": "^\\s*#\\s*endif\\b", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "line_continuation_character": { - "patterns": [ - { - "match": "(\\\\)\\n", - "captures": { - "1": { - "name": "constant.character.escape.line-continuation.objc" - } - } - } - ] - }, - "parens": { - "name": "meta.parens.objc", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "$base" - } - ] - }, - "parens-block": { - "name": "meta.parens.block.objc", - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#block_innards" - }, - { - "match": "(?-mix:(?<!:):(?!:))", - "name": "punctuation.range-based.objc" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.pragma.objc" - }, - "2": { - "name": "keyword.control.directive.pragma.pragma-mark.objc" - }, - "3": { - "name": "punctuation.definition.directive.objc" - }, - "4": { - "name": "entity.name.tag.pragma-mark.objc" - } - }, - "match": "^\\s*(((#)\\s*pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objc" - }, - "operators": { - "patterns": [ - { - "match": "(?<![\\w$])(sizeof)(?![\\w$])", - "name": "keyword.operator.sizeof.objc" - }, - { - "match": "--", - "name": "keyword.operator.decrement.objc" - }, - { - "match": "\\+\\+", - "name": "keyword.operator.increment.objc" - }, - { - "match": "%=|\\+=|-=|\\*=|(?<!\\()/=", - "name": "keyword.operator.assignment.compound.objc" - }, - { - "match": "&=|\\^=|<<=|>>=|\\|=", - "name": "keyword.operator.assignment.compound.bitwise.objc" - }, - { - "match": "<<|>>", - "name": "keyword.operator.bitwise.shift.objc" - }, - { - "match": "!=|<=|>=|==|<|>", - "name": "keyword.operator.comparison.objc" - }, - { - "match": "&&|!|\\|\\|", - "name": "keyword.operator.logical.objc" - }, - { - "match": "&|\\||\\^|~", - "name": "keyword.operator.objc" - }, - { - "match": "=", - "name": "keyword.operator.assignment.objc" - }, - { - "match": "%|\\*|/|-|\\+", - "name": "keyword.operator.objc" - }, - { - "begin": "(\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.objc" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - }, - { - "include": "$base" - } - ] - } - ] - }, - "strings": { - "patterns": [ - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.single.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objc" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objc" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objc" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objc" - } - } - } - ] - }, - "storage_types": { - "patterns": [ - { - "match": "(?-mix:(?<!\\w)(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool)(?!\\w))", - "name": "storage.type.built-in.primitive.objc" - }, - { - "match": "(?-mix:(?<!\\w)(?:_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t)(?!\\w))", - "name": "storage.type.built-in.objc" - }, - { - "match": "(?-mix:\\b(asm|__asm__|enum|struct|union)\\b)", - "name": "storage.type.$1.objc" - } - ] - }, - "vararg_ellipses": { - "match": "(?<!\\.)\\.\\.\\.(?!\\.)", - "name": "punctuation.vararg-ellipses.objc" - }, - "preprocessor-rule-conditional": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objc" - } - } - } - ] - }, - "preprocessor-rule-conditional-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if(?:n?def)?\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "match": "^\\s*#\\s*(else|elif|endif)\\b", - "captures": { - "0": { - "name": "invalid.illegal.stray-$1.objc" - } - } - } - ] - }, - "preprocessor-rule-conditional-line": { - "patterns": [ - { - "match": "(?:\\bdefined\\b\\s*$)|(?:\\bdefined\\b(?=\\s*\\(*\\s*(?:(?!defined\\b)[a-zA-Z_$][\\w$]*\\b)\\s*\\)*\\s*(?:\\n|//|/\\*|\\?|\\:|&&|\\|\\||\\\\\\s*\\n)))", - "name": "keyword.control.directive.conditional.objc" - }, - { - "match": "\\bdefined\\b", - "name": "invalid.illegal.macro-name.objc" - }, - { - "include": "#comments" - }, - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.objc" - } - }, - "end": ":", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#operators" - }, - { - "match": "\\b(NULL|true|false|TRUE|FALSE)\\b", - "name": "constant.language.objc" - }, - { - "match": "[a-zA-Z_$][\\w$]*", - "name": "entity.name.function.preprocessor.objc" - }, - { - "include": "#line_continuation_character" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)|(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - } - ] - }, - "preprocessor-rule-disabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif" - }, - { - "include": "#preprocessor-rule-enabled-else" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "$base" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objc", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "include": "#preprocessor-rule-enabled-elif-block" - }, - { - "include": "#preprocessor-rule-enabled-else-block" - }, - { - "include": "#preprocessor-rule-disabled-elif" - }, - { - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objc", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-disabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0+\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:elif|else|endif)\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.objc", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.objc", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-block": { - "patterns": [ - { - "begin": "^\\s*((#)\\s*if\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "^\\s*((#)\\s*endif\\b)", - "endCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "contentName": "comment.block.preprocessor.else-branch.in-block.objc", - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.if-branch.in-block.objc", - "begin": "^\\s*((#)\\s*elif\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "$base" - } - ] - } - ] - }, - "preprocessor-rule-enabled-elif-block": { - "begin": "^\\s*((#)\\s*elif\\b)(?=\\s*\\(*\\b0*1\\b\\)*\\s*(?:$|//|/\\*))", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "begin": "\\G(?=.)(?!//|/\\*(?!.*\\\\\\s*\\n))", - "end": "(?=//)|(?=/\\*(?!.*\\\\\\s*\\n))|(?<!\\\\)(?=\\n)", - "name": "meta.preprocessor.objc", - "patterns": [ - { - "include": "#preprocessor-rule-conditional-line" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "\\n", - "end": "(?=^\\s*((#)\\s*(?:endif)\\b))", - "patterns": [ - { - "contentName": "comment.block.preprocessor.elif-branch.in-block.objc", - "begin": "^\\s*((#)\\s*(else)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "contentName": "comment.block.preprocessor.elif-branch.objc", - "begin": "^\\s*((#)\\s*(elif)\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*(?:else|elif|endif)\\b))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "include": "#block_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-else": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "$base" - } - ] - }, - "preprocessor-rule-enabled-else-block": { - "begin": "^\\s*((#)\\s*else\\b)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.objc" - }, - "1": { - "name": "keyword.control.directive.conditional.objc" - }, - "2": { - "name": "punctuation.definition.directive.objc" - } - }, - "end": "(?=^\\s*((#)\\s*endif\\b))", - "patterns": [ - { - "include": "#block_innards" - } - ] - }, - "preprocessor-rule-define-line-contents": { - "patterns": [ - { - "include": "#vararg_ellipses" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "name": "meta.block.objc", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - } - ] - }, - { - "match": "\\(", - "name": "punctuation.section.parens.begin.bracket.round.objc" - }, - { - "match": "\\)", - "name": "punctuation.section.parens.end.bracket.round.objc" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas|asm|__asm__|auto|bool|_Bool|char|_Complex|double|enum|float|_Imaginary|int|long|short|signed|struct|typedef|union|unsigned|void)\\s*\\()\n(?=\n (?:[A-Za-z_][A-Za-z0-9_]*+|::)++\\s*\\( # actual name\n |\n (?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\\s*\\(\n)", - "end": "(?<=\\))(?!\\w)|(?<!\\\\)(?=\\s*\\n)", - "name": "meta.function.objc", - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "\"|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.double.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#string_placeholder" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.objc" - } - }, - "end": "'|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.objc" - } - }, - "name": "string.quoted.single.objc", - "patterns": [ - { - "include": "#string_escaped_char" - }, - { - "include": "#line_continuation_character" - } - ] - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "$base" - } - ] - }, - "preprocessor-rule-define-line-blocks": { - "patterns": [ - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.block.begin.bracket.curly.objc" - } - }, - "end": "}|(?=\\s*#\\s*(?:elif|else|endif)\\b)|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "0": { - "name": "punctuation.section.block.end.bracket.curly.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-blocks" - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "preprocessor-rule-define-line-functions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#vararg_ellipses" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objc" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objc" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "(\\))|(?<!\\\\)(?=\\s*\\n)", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#preprocessor-rule-define-line-functions" - } - ] - }, - { - "include": "#preprocessor-rule-define-line-contents" - } - ] - }, - "function-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#operators" - }, - { - "include": "#vararg_ellipses" - }, - { - "name": "meta.function.definition.parameters.objc", - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objc" - }, - "2": { - "name": "punctuation.section.parameters.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parameters.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#probably_a_parameter" - }, - { - "include": "#function-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#function-innards" - } - ] - }, - { - "include": "$base" - } - ] - }, - "function-call-innards": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#storage_types" - }, - { - "include": "#method_access" - }, - { - "include": "#member_access" - }, - { - "include": "#operators" - }, - { - "begin": "(?x)\n(?!(?:while|for|do|if|else|switch|catch|enumerate|return|typeid|alignof|alignas|sizeof|[cr]?iterate|and|and_eq|bitand|bitor|compl|not|not_eq|or|or_eq|typeid|xor|xor_eq|alignof|alignas)\\s*\\()\n(\n(?:[A-Za-z_][A-Za-z0-9_]*+|::)++ # actual name\n|\n(?:(?<=operator)(?:[-*&<>=+!]+|\\(\\)|\\[\\]))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.objc" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.arguments.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.parens.begin.bracket.round.objc" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.parens.end.bracket.round.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - { - "include": "#block_innards" - } - ] - }, - "default_statement": { - "name": "meta.conditional.case.objc", - "begin": "((?<!\\w)default(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.default.objc" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.default.objc" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "case_statement": { - "name": "meta.conditional.case.objc", - "begin": "((?<!\\w)case(?!\\w))", - "beginCaptures": { - "1": { - "name": "keyword.control.case.objc" - } - }, - "end": "(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.case.objc" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "switch_statement": { - "name": "meta.block.switch.objc", - "begin": "(((?<!\\w)switch(?!\\w)))", - "beginCaptures": { - "1": { - "name": "meta.head.switch.objc" - }, - "2": { - "name": "keyword.control.switch.objc" - } - }, - "end": "(?:(?<=\\})|(?=[;>\\[\\]=]))", - "patterns": [ - { - "name": "meta.head.switch.objc", - "begin": "\\G ?", - "end": "((?:\\{|(?=;)))", - "endCaptures": { - "1": { - "name": "punctuation.section.block.begin.bracket.curly.switch.objc" - } - }, - "patterns": [ - { - "include": "#switch_conditional_parentheses" - }, - { - "include": "$base" - } - ] - }, - { - "name": "meta.body.switch.objc", - "begin": "(?<=\\{)", - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.block.end.bracket.curly.switch.objc" - } - }, - "patterns": [ - { - "include": "#default_statement" - }, - { - "include": "#case_statement" - }, - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - { - "name": "meta.tail.switch.objc", - "begin": "(?<=})[\\s\\n]*", - "end": "[\\s\\n]*(?=;)", - "patterns": [ - { - "include": "$base" - } - ] - } - ] - }, - "switch_conditional_parentheses": { - "name": "meta.conditional.switch.objc", - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.section.parens.begin.bracket.round.conditional.switch.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.parens.end.bracket.round.conditional.switch.objc" - } - }, - "patterns": [ - { - "include": "#conditional_context" - } - ] - }, - "static_assert": { - "begin": "(static_assert|_Static_assert)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.static_assert.objc" - }, - "2": { - "name": "punctuation.section.arguments.begin.bracket.round.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.objc" - } - }, - "patterns": [ - { - "name": "meta.static_assert.message.objc", - "begin": "(,)\\s*(?=(?:L|u8|u|U\\s*\\\")?)", - "beginCaptures": { - "1": { - "name": "punctuation.separator.delimiter.objc" - } - }, - "end": "(?=\\))", - "patterns": [ - { - "include": "#string_context" - }, - { - "include": "#string_context_c" - } - ] - }, - { - "include": "#function_call_context" - } - ] - }, - "conditional_context": { - "patterns": [ - { - "include": "$base" - }, - { - "include": "#block_innards" - } - ] - }, - "member_access": { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*(\\b(?!(?:void|char|short|int|signed|unsigned|long|float|double|bool|_Bool|_Complex|_Imaginary|u_char|u_short|u_int|u_long|ushort|uint|u_quad_t|quad_t|qaddr_t|caddr_t|daddr_t|div_t|dev_t|fixpt_t|blkcnt_t|blksize_t|gid_t|in_addr_t|in_port_t|ino_t|key_t|mode_t|nlink_t|id_t|pid_t|off_t|segsz_t|swblk_t|uid_t|id_t|clock_t|size_t|ssize_t|time_t|useconds_t|suseconds_t|pthread_attr_t|pthread_cond_t|pthread_condattr_t|pthread_mutex_t|pthread_mutexattr_t|pthread_once_t|pthread_rwlock_t|pthread_rwlockattr_t|pthread_t|pthread_key_t|int8_t|int16_t|int32_t|int64_t|uint8_t|uint16_t|uint32_t|uint64_t|int_least8_t|int_least16_t|int_least32_t|int_least64_t|uint_least8_t|uint_least16_t|uint_least32_t|uint_least64_t|int_fast8_t|int_fast16_t|int_fast32_t|int_fast64_t|uint_fast8_t|uint_fast16_t|uint_fast32_t|uint_fast64_t|intptr_t|uintptr_t|intmax_t|intmax_t|uintmax_t|uintmax_t|memory_order|atomic_bool|atomic_char|atomic_schar|atomic_uchar|atomic_short|atomic_ushort|atomic_int|atomic_uint|atomic_long|atomic_ulong|atomic_llong|atomic_ullong|atomic_char16_t|atomic_char32_t|atomic_wchar_t|atomic_int_least8_t|atomic_uint_least8_t|atomic_int_least16_t|atomic_uint_least16_t|atomic_int_least32_t|atomic_uint_least32_t|atomic_int_least64_t|atomic_uint_least64_t|atomic_int_fast8_t|atomic_uint_fast8_t|atomic_int_fast16_t|atomic_uint_fast16_t|atomic_int_fast32_t|atomic_uint_fast32_t|atomic_int_fast64_t|atomic_uint_fast64_t|atomic_intptr_t|atomic_uintptr_t|atomic_size_t|atomic_ptrdiff_t|atomic_intmax_t|atomic_uintmax_t))[a-zA-Z_]\\w*\\b(?!\\())", - "captures": { - "1": { - "name": "variable.other.object.access.objc" - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.objc" - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - } - } - } - ] - }, - "5": { - "name": "variable.other.member.objc" - } - } - }, - "method_access": { - "contentName": "meta.function-call.member.objc", - "begin": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))((?:[a-zA-Z_]\\w*\\s*(?-mix:(?:(?:\\.\\*|\\.))|(?:(?:->\\*|->)))\\s*)*)\\s*([a-zA-Z_]\\w*)(\\()", - "beginCaptures": { - "1": { - "name": "variable.other.object.access.objc" - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - }, - "4": { - "patterns": [ - { - "include": "#member_access" - }, - { - "include": "#method_access" - }, - { - "match": "((?:[a-zA-Z_]\\w*|(?<=\\]|\\)))\\s*)(?:((?:\\.\\*|\\.))|((?:->\\*|->)))", - "captures": { - "1": { - "name": "variable.other.object.access.objc" - }, - "2": { - "name": "punctuation.separator.dot-access.objc" - }, - "3": { - "name": "punctuation.separator.pointer-access.objc" - } - } - } - ] - }, - "5": { - "name": "entity.name.function.member.objc" - }, - "6": { - "name": "punctuation.section.arguments.begin.bracket.round.function.member.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.arguments.end.bracket.round.function.member.objc" - } - }, - "patterns": [ - { - "include": "#function-call-innards" - } - ] - }, - "numbers": { - "begin": "(?<!\\w)(?=\\d|\\.\\d)", - "end": "(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "patterns": [ - { - "match": "(\\G0[xX])(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9a-fA-F])\\.|\\.(?=[0-9a-fA-F])))(?:([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objc" - }, - "2": { - "name": "constant.numeric.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "constant.numeric.hexadecimal.objc" - }, - "5": { - "name": "constant.numeric.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "8": { - "name": "keyword.other.unit.exponent.hexadecimal.objc" - }, - "9": { - "name": "keyword.operator.plus.exponent.hexadecimal.objc" - }, - "10": { - "name": "keyword.operator.minus.exponent.hexadecimal.objc" - }, - "11": { - "name": "constant.numeric.exponent.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objc" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?((?:(?<=[0-9])\\.|\\.(?=[0-9])))(?:([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*))?(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:([lLfF](?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "constant.numeric.decimal.point.objc" - }, - "5": { - "name": "constant.numeric.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "6": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "8": { - "name": "keyword.other.unit.exponent.decimal.objc" - }, - "9": { - "name": "keyword.operator.plus.exponent.decimal.objc" - }, - "10": { - "name": "keyword.operator.minus.exponent.decimal.objc" - }, - "11": { - "name": "constant.numeric.exponent.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "12": { - "name": "keyword.other.unit.suffix.floating-point.objc" - } - } - }, - { - "match": "(\\G0[bB])([01](?:(?:[01]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.binary.objc" - }, - "2": { - "name": "constant.numeric.binary.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(\\G0)((?:(?:[0-7]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))+)(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.octal.objc" - }, - "2": { - "name": "constant.numeric.octal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "4": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(\\G0[xX])([0-9a-fA-F](?:(?:[0-9a-fA-F]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([pP])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "1": { - "name": "keyword.other.unit.hexadecimal.objc" - }, - "2": { - "name": "constant.numeric.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "5": { - "name": "keyword.other.unit.exponent.hexadecimal.objc" - }, - "6": { - "name": "keyword.operator.plus.exponent.hexadecimal.objc" - }, - "7": { - "name": "keyword.operator.minus.exponent.hexadecimal.objc" - }, - "8": { - "name": "constant.numeric.exponent.hexadecimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(\\G(?=[0-9.])(?!0[xXbB]))([0-9](?:(?:[0-9]|((?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)(?:((?<!')([eE])(\\+)?(\\-)?((?-mix:(?:[0-9](?:(?:[0-9]|(?:(?<=[0-9a-fA-F])'(?=[0-9a-fA-F]))))*)))))?(?:((?:(?:(?:(?:(?:[uU]|[uU]ll?)|[uU]LL?)|ll?[uU]?)|LL?[uU]?)|[fF])(?!\\w)))?(?!(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))", - "captures": { - "2": { - "name": "constant.numeric.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "3": { - "name": "punctuation.separator.constant.numeric.objc" - }, - "5": { - "name": "keyword.other.unit.exponent.decimal.objc" - }, - "6": { - "name": "keyword.operator.plus.exponent.decimal.objc" - }, - "7": { - "name": "keyword.operator.minus.exponent.decimal.objc" - }, - "8": { - "name": "constant.numeric.exponent.decimal.objc", - "patterns": [ - { - "match": "(?<=[0-9a-fA-F])'(?=[0-9a-fA-F])", - "name": "punctuation.separator.constant.numeric.objc" - } - ] - }, - "9": { - "name": "keyword.other.unit.suffix.integer.objc" - } - } - }, - { - "match": "(?:(?:['0-9a-zA-Z_\\.']|(?<=[eEpP])[+-]))+", - "name": "invalid.illegal.constant.numeric.objc" - } - ] - } - } - }, - "comment": { - "patterns": [ - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.objc" - } - }, - "end": "\\*/", - "name": "comment.block.objc" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.objc" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.objc" - } - }, - "end": "\\n", - "name": "comment.line.double-slash.objc", - "patterns": [ - { - "match": "(?>\\\\\\s*\\n)", - "name": "punctuation.separator.continuation.objc" - } - ] - } - ] - } - ] - }, - "disabled": { - "begin": "^\\s*#\\s*if(n?def)?\\b.*$", - "comment": "eat nested preprocessor if(def)s", - "end": "^\\s*#\\s*endif\\b.*$", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - "implementation_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-implementation" - }, - { - "include": "#preprocessor-rule-disabled-implementation" - }, - { - "include": "#preprocessor-rule-other-implementation" - }, - { - "include": "#property_directive" - }, - { - "include": "#special_variables" - }, - { - "include": "#method_super" - }, - { - "include": "$base" - } - ] - }, - "interface_innards": { - "patterns": [ - { - "include": "#preprocessor-rule-enabled-interface" - }, - { - "include": "#preprocessor-rule-disabled-interface" - }, - { - "include": "#preprocessor-rule-other-interface" - }, - { - "include": "#properties" - }, - { - "include": "#protocol_list" - }, - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "method": { - "begin": "^(-|\\+)\\s*", - "end": "(?=\\{|#)|;", - "name": "meta.function.objc", - "patterns": [ - { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.type.begin.objc" - } - }, - "end": "(\\))\\s*(\\w+\\b)", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objc" - }, - "2": { - "name": "entity.name.function.objc" - } - }, - "name": "meta.return-type.objc", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "match": "\\b\\w+(?=:)", - "name": "entity.name.function.name-of-parameter.objc" - }, - { - "begin": "((:))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.name-of-parameter.objc" - }, - "2": { - "name": "punctuation.separator.arguments.objc" - }, - "3": { - "name": "punctuation.definition.type.begin.objc" - } - }, - "end": "(\\))\\s*(\\w+\\b)?", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.objc" - }, - "2": { - "name": "variable.parameter.function.objc" - } - }, - "name": "meta.argument-type.objc", - "patterns": [ - { - "include": "#protocol_list" - }, - { - "include": "#protocol_type_qualifier" - }, - { - "include": "$base" - } - ] - }, - { - "include": "#comment" - } - ] - }, - "method_super": { - "begin": "^(?=-|\\+)", - "end": "(?<=\\})|(?=#)", - "name": "meta.function-with-body.objc", - "patterns": [ - { - "include": "#method" - }, - { - "include": "$base" - } - ] - }, - "pragma-mark": { - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.pragma.objc" - }, - "3": { - "name": "meta.toc-list.pragma-mark.objc" - } - }, - "match": "^\\s*(#\\s*(pragma\\s+mark)\\s+(.*))", - "name": "meta.section.objc" - }, - "preprocessor-rule-disabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objc", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-disabled-interface": { - "begin": "^\\s*(#(if)\\s+(0)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "name": "comment.block.preprocessor.if-branch.objc", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - } - ] - }, - "preprocessor-rule-enabled-implementation": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objc", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - } - ] - }, - "preprocessor-rule-enabled-interface": { - "begin": "^\\s*(#(if)\\s+(0*1)\\b)", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.if.objc" - }, - "3": { - "name": "constant.numeric.preprocessor.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "begin": "^\\s*(#\\s*(else)\\b).*", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.else.objc" - } - }, - "contentName": "comment.block.preprocessor.else-branch.objc", - "end": "(?=^\\s*#\\s*endif\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#disabled" - }, - { - "include": "#pragma-mark" - } - ] - }, - { - "begin": "", - "end": "(?=^\\s*#\\s*(else|endif)\\b.*?(?:(?=(?://|/\\*))|$))", - "patterns": [ - { - "include": "#interface_innards" - } - ] - } - ] - }, - "preprocessor-rule-other-implementation": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#implementation_innards" - } - ] - }, - "preprocessor-rule-other-interface": { - "begin": "^\\s*(#\\s*(if(n?def)?)\\b.*?(?:(?=(?://|/\\*))|$))", - "captures": { - "1": { - "name": "meta.preprocessor.objc" - }, - "2": { - "name": "keyword.control.import.objc" - } - }, - "end": "^\\s*(#\\s*(endif)\\b).*?(?:(?=(?://|/\\*))|$)", - "patterns": [ - { - "include": "#interface_innards" - } - ] - }, - "properties": { - "patterns": [ - { - "begin": "((@)property)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.property.objc" - }, - "2": { - "name": "punctuation.definition.keyword.objc" - }, - "3": { - "name": "punctuation.section.scope.begin.objc" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objc" - } - }, - "name": "meta.property-with-attributes.objc", - "patterns": [ - { - "match": "\\b(getter|setter|readonly|readwrite|assign|retain|copy|nonatomic|strong|weak)\\b", - "name": "keyword.other.property.attribute.objc" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.property.objc" - }, - "2": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "((@)property)\\b", - "name": "meta.property.objc" - } - ] - }, - "property_directive": { - "captures": { - "1": { - "name": "punctuation.definition.keyword.objc" - } - }, - "match": "(@)(dynamic|synthesize)\\b", - "name": "keyword.other.property.directive.objc" - }, - "protocol_list": { - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.section.scope.begin.objc" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.section.scope.end.objc" - } - }, - "name": "meta.protocol-list.objc", - "patterns": [ - { - "match": "\\bNS(GlyphStorage|M(utableCopying|enuItem)|C(hangeSpelling|o(ding|pying|lorPicking(Custom|Default)))|T(oolbarItemValidations|ext(Input|AttachmentCell))|I(nputServ(iceProvider|erMouseTracker)|gnoreMisspelledWords)|Obj(CTypeSerializationCallBack|ect)|D(ecimalNumberBehaviors|raggingInfo)|U(serInterfaceValidations|RL(HandleClient|DownloadDelegate|ProtocolClient|AuthenticationChallengeSender))|Validated(ToobarItem|UserInterfaceItem)|Locking)\\b", - "name": "support.other.protocol.objc" - } - ] - }, - "protocol_type_qualifier": { - "match": "\\b(in|out|inout|oneway|bycopy|byref)\\b", - "name": "storage.modifier.protocol.objc" - }, - "special_variables": { - "patterns": [ - { - "match": "\\b_cmd\\b", - "name": "variable.other.selector.objc" - }, - { - "match": "\\b(self|super)\\b", - "name": "variable.language.objc" - } - ] - }, - "string_escaped_char": { - "patterns": [ - { - "match": "(?x)\\\\ (\n\\\\\t\t\t |\n[abefnprtv'\"?] |\n[0-3]\\d{,2}\t |\n[4-7]\\d?\t\t|\nx[a-fA-F0-9]{,2} |\nu[a-fA-F0-9]{,4} |\nU[a-fA-F0-9]{,8} )", - "name": "constant.character.escape.objc" - }, - { - "match": "\\\\.", - "name": "invalid.illegal.unknown-escape.objc" - } - ] - }, - "string_placeholder": { - "patterns": [ - { - "match": "(?x) %\n(\\d+\\$)?\t\t\t\t\t\t # field (argument #)\n[#0\\- +']*\t\t\t\t\t\t # flags\n[,;:_]?\t\t\t\t\t\t\t # separator character (AltiVec)\n((-?\\d+)|\\*(-?\\d+\\$)?)?\t\t # minimum field width\n(\\.((-?\\d+)|\\*(-?\\d+\\$)?)?)?\t# precision\n(hh|h|ll|l|j|t|z|q|L|vh|vl|v|hv|hl)? # length modifier\n[diouxXDOUeEfFgGaACcSspn%]\t\t # conversion type", - "name": "constant.other.placeholder.objc" - }, - { - "match": "(%)(?!\"\\s*(PRI|SCN))", - "captures": { - "1": { - "name": "invalid.illegal.placeholder.objc" - } - } - } - ] - } - } -} diff --git a/extensions/objective-c/test/colorize-fixtures/test.m b/extensions/objective-c/test/colorize-fixtures/test.m deleted file mode 100644 index d5d31433ae3..00000000000 --- a/extensions/objective-c/test/colorize-fixtures/test.m +++ /dev/null @@ -1,52 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#import "UseQuotes.h" -#import <Use/GTLT.h> - -/* - Multi - Line - Comments -*/ -@implementation Test - -- (void) applicationWillFinishLaunching:(NSNotification *)notification -{ -} - -- (IBAction)onSelectInput:(id)sender -{ - NSString* defaultDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0]; - - NSOpenPanel* panel = [NSOpenPanel openPanel]; - [panel setAllowedFileTypes:[[NSArray alloc] initWithObjects:@"ipa", @"xcarchive", @"app", nil]]; - - [panel beginWithCompletionHandler:^(NSInteger result) - { - if (result == NSFileHandlingPanelOKButton) - [self.inputTextField setStringValue:[panel.URL path]]; - }]; - return YES; - - int hex = 0xFEF1F0F; - float ing = 3.14; - ing = 3.14e0; - ing = 31.4e-2; -} - --(id) initWithParams:(id<anObject>) aHandler withDeviceStateManager:(id<anotherObject>) deviceStateManager -{ - // add a tap gesture recognizer - UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; - NSMutableArray *gestureRecognizers = [NSMutableArray array]; - [gestureRecognizers addObject:tapGesture]; - [gestureRecognizers addObjectsFromArray:scnView.gestureRecognizers]; - scnView.gestureRecognizers = gestureRecognizers; - - return tapGesture; - return nil; -} - -@end diff --git a/extensions/objective-c/test/colorize-fixtures/test.mm b/extensions/objective-c/test/colorize-fixtures/test.mm deleted file mode 100644 index d5d31433ae3..00000000000 --- a/extensions/objective-c/test/colorize-fixtures/test.mm +++ /dev/null @@ -1,52 +0,0 @@ -// -// Copyright (c) Microsoft Corporation. All rights reserved. -// - -#import "UseQuotes.h" -#import <Use/GTLT.h> - -/* - Multi - Line - Comments -*/ -@implementation Test - -- (void) applicationWillFinishLaunching:(NSNotification *)notification -{ -} - -- (IBAction)onSelectInput:(id)sender -{ - NSString* defaultDir = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, true)[0]; - - NSOpenPanel* panel = [NSOpenPanel openPanel]; - [panel setAllowedFileTypes:[[NSArray alloc] initWithObjects:@"ipa", @"xcarchive", @"app", nil]]; - - [panel beginWithCompletionHandler:^(NSInteger result) - { - if (result == NSFileHandlingPanelOKButton) - [self.inputTextField setStringValue:[panel.URL path]]; - }]; - return YES; - - int hex = 0xFEF1F0F; - float ing = 3.14; - ing = 3.14e0; - ing = 31.4e-2; -} - --(id) initWithParams:(id<anObject>) aHandler withDeviceStateManager:(id<anotherObject>) deviceStateManager -{ - // add a tap gesture recognizer - UITapGestureRecognizer *tapGesture = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleTap:)]; - NSMutableArray *gestureRecognizers = [NSMutableArray array]; - [gestureRecognizers addObject:tapGesture]; - [gestureRecognizers addObjectsFromArray:scnView.gestureRecognizers]; - scnView.gestureRecognizers = gestureRecognizers; - - return tapGesture; - return nil; -} - -@end diff --git a/extensions/objective-c/test/colorize-results/test_m.json b/extensions/objective-c/test/colorize-results/test_m.json deleted file mode 100644 index d0a8eb93dd3..00000000000 --- a/extensions/objective-c/test/colorize-results/test_m.json +++ /dev/null @@ -1,3093 +0,0 @@ -[ - { - "c": "//", - "t": "source.objc comment.line.double-slash.objc punctuation.definition.comment.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.objc comment.line.double-slash.objc punctuation.definition.comment.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Copyright (c) Microsoft Corporation. All rights reserved.", - "t": "source.objc comment.line.double-slash.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.objc comment.line.double-slash.objc punctuation.definition.comment.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc punctuation.definition.directive.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "import", - "t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objc meta.preprocessor.include.objc", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\"", - "t": "source.objc meta.preprocessor.include.objc string.quoted.double.include.objc punctuation.definition.string.begin.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "UseQuotes.h", - "t": "source.objc meta.preprocessor.include.objc string.quoted.double.include.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objc meta.preprocessor.include.objc string.quoted.double.include.objc punctuation.definition.string.end.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#", - "t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc punctuation.definition.directive.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "import", - "t": "source.objc meta.preprocessor.include.objc keyword.control.directive.import.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objc meta.preprocessor.include.objc", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "<", - "t": "source.objc meta.preprocessor.include.objc string.quoted.other.lt-gt.include.objc punctuation.definition.string.begin.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Use/GTLT.h", - "t": "source.objc meta.preprocessor.include.objc string.quoted.other.lt-gt.include.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "source.objc meta.preprocessor.include.objc string.quoted.other.lt-gt.include.objc punctuation.definition.string.end.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/*", - "t": "source.objc comment.block.objc punctuation.definition.comment.begin.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tMulti", - "t": "source.objc comment.block.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tLine", - "t": "source.objc comment.block.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tComments", - "t": "source.objc comment.block.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.objc comment.block.objc punctuation.definition.comment.end.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.objc meta.implementation.objc storage.type.objc punctuation.definition.storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "implementation", - "t": "source.objc meta.implementation.objc storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Test", - "t": "source.objc meta.implementation.objc entity.name.type.objc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "- ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.begin.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "void", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.built-in.primitive.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.end.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "applicationWillFinishLaunching", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc entity.name.function.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSNotification", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc support.class.cocoa.objc", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc keyword.operator.objc", - "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" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "notification", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "{", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.begin.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.end.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "- ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.begin.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "IBAction", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.end.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "onSelectInput", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc entity.name.function.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc storage.type.id.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sender", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "{", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.begin.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSString", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.class.cocoa.objc", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "*", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc", - "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" - } - }, - { - "c": " defaultDir ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.whitespace.support.function.leading.cocoa.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSSearchPathForDirectoriesInDomains", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.function.cocoa.objc", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.section.parens.begin.bracket.round.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSDocumentDirectory", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc support.constant.cocoa.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.separator.delimiter.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSUserDomainMask", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc support.constant.cocoa.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.separator.delimiter.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc constant.language.objc", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.parens.block.objc punctuation.section.parens.end.bracket.round.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc constant.numeric.decimal.objc", - "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" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSOpenPanel", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.class.cocoa.objc", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "*", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc", - "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" - } - }, - { - "c": " panel ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSOpenPanel", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc support.class.cocoa.objc", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " openPanel", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "panel setAllowedFileTypes:", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSArray", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc support.class.cocoa.objc", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " alloc", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " initWithObjects:", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@\"", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.begin.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ipa", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.end.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.delimiter.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@\"", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.begin.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "xcarchive", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.end.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.delimiter.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@\"", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.begin.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "app", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc string.quoted.double.objc punctuation.definition.string.end.objc", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.delimiter.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nil", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc constant.language.objc", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "panel beginWithCompletionHandler:", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "^", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc keyword.operator.objc", - "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" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.parens.begin.bracket.round.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSInteger", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc support.type.cocoa.leopard.objc", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " result", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.parens.end.bracket.round.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.block.begin.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc keyword.control.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc punctuation.section.parens.begin.bracket.round.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "result ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc keyword.operator.comparison.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSFileHandlingPanelOKButton", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc support.constant.cocoa.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.parens.block.objc punctuation.section.parens.end.bracket.round.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "self", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.object.access.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.dot-access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "inputTextField", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.member.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " setStringValue:", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "panel", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.object.access.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.separator.dot-access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "URL", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc variable.other.member.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " path", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.section.block.end.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.control.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "YES", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.language.objc", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc storage.type.built-in.primitive.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " hex ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0x", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.other.unit.hexadecimal.objc", - "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" - } - }, - { - "c": "FEF1F0F", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.hexadecimal.objc", - "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" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "float", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc storage.type.built-in.primitive.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ing ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc", - "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" - } - }, - { - "c": ".", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.point.objc", - "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" - } - }, - { - "c": "14", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc", - "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" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t ing ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc", - "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" - } - }, - { - "c": ".", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.point.objc", - "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" - } - }, - { - "c": "14", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc", - "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" - } - }, - { - "c": "e", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.other.unit.exponent.decimal.objc", - "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" - } - }, - { - "c": "0", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.exponent.decimal.objc", - "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" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t ing ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "31", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc", - "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" - } - }, - { - "c": ".", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.point.objc", - "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" - } - }, - { - "c": "4", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.decimal.objc", - "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" - } - }, - { - "c": "e", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.other.unit.exponent.decimal.objc", - "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" - } - }, - { - "c": "-", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.minus.exponent.decimal.objc", - "r": { - "dark_plus": "keyword.operator.minus.exponent: #B5CEA8", - "light_plus": "keyword.operator.minus.exponent: #098658", - "dark_vs": "keyword.operator.minus.exponent: #B5CEA8", - "light_vs": "keyword.operator.minus.exponent: #098658", - "hc_black": "keyword.operator: #D4D4D4" - } - }, - { - "c": "2", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.numeric.exponent.decimal.objc", - "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" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.end.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.begin.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "id", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc storage.type.id.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc punctuation.definition.type.end.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "initWithParams", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.return-type.objc entity.name.function.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "<", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.begin.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "anObject", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.end.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "aHandler", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "withDeviceStateManager", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc entity.name.function.name-of-parameter.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc entity.name.function.name-of-parameter.objc punctuation.separator.arguments.objc", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.begin.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "<", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.begin.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "anotherObject", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc meta.id-with-protocol.objc meta.protocol-list.objc punctuation.section.scope.end.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc punctuation.definition.type.end.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "deviceStateManager", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.function.objc meta.argument-type.objc variable.parameter.function.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "{", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.begin.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.whitespace.comment.leading.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc comment.line.double-slash.objc punctuation.definition.comment.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " add a tap gesture recognizer", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc comment.line.double-slash.objc", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " UITapGestureRecognizer ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc", - "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" - } - }, - { - "c": "tapGesture ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "UITapGestureRecognizer alloc", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " initWithTarget:self action:", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc storage.type.objc punctuation.definition.storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "selector", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "(", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc punctuation.definition.storage.type.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "handleTap:", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc meta.selector.method-name.objc support.function.any-method.name-of-parameter.objc", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ")", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc meta.selector.objc punctuation.definition.storage.type.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSMutableArray", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc support.class.cocoa.objc", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.objc", - "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" - } - }, - { - "c": "gestureRecognizers ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSMutableArray", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc support.class.cocoa.objc", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " array", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers addObject:tapGesture", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.begin.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers addObjectsFromArray:", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "scnView", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc variable.other.object.access.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.separator.dot-access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc variable.other.member.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "]", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc meta.bracket.square.access.objc punctuation.definition.end.bracket.square.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "scnView", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc variable.other.object.access.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.separator.dot-access.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc variable.other.member.objc", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.operator.assignment.objc", - "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" - } - }, - { - "c": " gestureRecognizers", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.control.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " tapGesture", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc keyword.control.objc", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nil", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc constant.language.objc", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.terminator.statement.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objc meta.implementation.objc meta.scope.implementation.objc meta.function-with-body.objc meta.block.objc punctuation.section.block.end.bracket.curly.objc", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.objc meta.implementation.objc storage.type.objc punctuation.definition.storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "end", - "t": "source.objc meta.implementation.objc storage.type.objc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - } -] diff --git a/extensions/objective-c/test/colorize-results/test_mm.json b/extensions/objective-c/test/colorize-results/test_mm.json deleted file mode 100644 index e724c6022ff..00000000000 --- a/extensions/objective-c/test/colorize-results/test_mm.json +++ /dev/null @@ -1,3093 +0,0 @@ -[ - { - "c": "//", - "t": "source.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Copyright (c) Microsoft Corporation. All rights reserved.", - "t": "source.objcpp comment.line.double-slash.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp punctuation.definition.directive.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "import", - "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.preprocessor.include.objcpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "\"", - "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.double.include.objcpp punctuation.definition.string.begin.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "UseQuotes.h", - "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.double.include.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.double.include.objcpp punctuation.definition.string.end.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#", - "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp punctuation.definition.directive.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "import", - "t": "source.objcpp meta.preprocessor.include.objcpp keyword.control.directive.import.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.preprocessor.include.objcpp", - "r": { - "dark_plus": "meta.preprocessor: #569CD6", - "light_plus": "meta.preprocessor: #0000FF", - "dark_vs": "meta.preprocessor: #569CD6", - "light_vs": "meta.preprocessor: #0000FF", - "hc_black": "meta.preprocessor: #569CD6" - } - }, - { - "c": "<", - "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.other.lt-gt.include.objcpp punctuation.definition.string.begin.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Use/GTLT.h", - "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.other.lt-gt.include.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "source.objcpp meta.preprocessor.include.objcpp string.quoted.other.lt-gt.include.objcpp punctuation.definition.string.end.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/*", - "t": "source.objcpp comment.block.objcpp punctuation.definition.comment.begin.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tMulti", - "t": "source.objcpp comment.block.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tLine", - "t": "source.objcpp comment.block.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\tComments", - "t": "source.objcpp comment.block.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.objcpp comment.block.objcpp punctuation.definition.comment.end.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp punctuation.definition.storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "implementation", - "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Test", - "t": "source.objcpp meta.implementation.objcpp entity.name.type.objcpp", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "- ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.begin.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "void", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp storage.type.built-in.primitive.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.end.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "applicationWillFinishLaunching", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp entity.name.function.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSNotification", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp support.class.cocoa.objcpp", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp keyword.operator.objcpp", - "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" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "notification", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "{", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.begin.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.end.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "- ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.begin.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "IBAction", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.end.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "onSelectInput", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp entity.name.function.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp storage.type.id.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sender", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "{", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.begin.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSString", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.class.cocoa.objcpp", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "*", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp", - "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" - } - }, - { - "c": " defaultDir ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.whitespace.support.function.leading.cocoa.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSSearchPathForDirectoriesInDomains", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.function.cocoa.objcpp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.section.parens.begin.bracket.round.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSDocumentDirectory", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp support.constant.cocoa.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.separator.delimiter.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSUserDomainMask", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp support.constant.cocoa.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.separator.delimiter.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp constant.language.objcpp", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.parens.block.objcpp punctuation.section.parens.end.bracket.round.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp constant.numeric.decimal.objcpp", - "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" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSOpenPanel", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.class.cocoa.objcpp", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "*", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp", - "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" - } - }, - { - "c": " panel ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSOpenPanel", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp support.class.cocoa.objcpp", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " openPanel", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "panel setAllowedFileTypes:", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSArray", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp support.class.cocoa.objcpp", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " alloc", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " initWithObjects:", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@\"", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.begin.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "ipa", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.end.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.delimiter.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@\"", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.begin.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "xcarchive", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.end.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.delimiter.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@\"", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.begin.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "app", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp string.quoted.double.objcpp punctuation.definition.string.end.objcpp", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.delimiter.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nil", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp constant.language.objcpp", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "panel beginWithCompletionHandler:", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "^", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp keyword.operator.objcpp", - "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" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.parens.begin.bracket.round.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSInteger", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp support.type.cocoa.leopard.objcpp", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " result", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.parens.end.bracket.round.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.block.begin.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp keyword.control.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp punctuation.section.parens.begin.bracket.round.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "result ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp keyword.operator.comparison.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSFileHandlingPanelOKButton", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp support.constant.cocoa.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.parens.block.objcpp punctuation.section.parens.end.bracket.round.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "self", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.object.access.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.dot-access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "inputTextField", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.member.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " setStringValue:", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "panel", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.object.access.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.separator.dot-access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "URL", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp variable.other.member.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " path", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.section.block.end.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.control.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "YES", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.language.objcpp", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "int", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp storage.type.built-in.primitive.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " hex ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0x", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.other.unit.hexadecimal.objcpp", - "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" - } - }, - { - "c": "FEF1F0F", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.hexadecimal.objcpp", - "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" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "float", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp storage.type.built-in.primitive.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ing ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp", - "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" - } - }, - { - "c": ".", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.point.objcpp", - "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" - } - }, - { - "c": "14", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp", - "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" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t ing ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp", - "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" - } - }, - { - "c": ".", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.point.objcpp", - "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" - } - }, - { - "c": "14", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp", - "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" - } - }, - { - "c": "e", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.other.unit.exponent.decimal.objcpp", - "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" - } - }, - { - "c": "0", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.exponent.decimal.objcpp", - "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" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t ing ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "31", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp", - "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" - } - }, - { - "c": ".", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.point.objcpp", - "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" - } - }, - { - "c": "4", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.decimal.objcpp", - "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" - } - }, - { - "c": "e", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.other.unit.exponent.decimal.objcpp", - "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" - } - }, - { - "c": "-", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.minus.exponent.decimal.objcpp", - "r": { - "dark_plus": "keyword.operator.minus.exponent: #B5CEA8", - "light_plus": "keyword.operator.minus.exponent: #098658", - "dark_vs": "keyword.operator.minus.exponent: #B5CEA8", - "light_vs": "keyword.operator.minus.exponent: #098658", - "hc_black": "keyword.operator: #D4D4D4" - } - }, - { - "c": "2", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.numeric.exponent.decimal.objcpp", - "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" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.end.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.begin.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "id", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp storage.type.id.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp punctuation.definition.type.end.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp", - "r": { - "dark_plus": "meta.return-type: #4EC9B0", - "light_plus": "meta.return-type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.return-type: #4EC9B0" - } - }, - { - "c": "initWithParams", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.return-type.objcpp entity.name.function.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "<", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.begin.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "anObject", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.end.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "aHandler", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "withDeviceStateManager", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp entity.name.function.name-of-parameter.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp entity.name.function.name-of-parameter.objcpp punctuation.separator.arguments.objcpp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.begin.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "<", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.begin.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "anotherObject", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp meta.id-with-protocol.objcpp meta.protocol-list.objcpp punctuation.section.scope.end.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp punctuation.definition.type.end.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "deviceStateManager", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.function.objcpp meta.argument-type.objcpp variable.parameter.function.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "{", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.begin.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.whitespace.comment.leading.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp comment.line.double-slash.objcpp punctuation.definition.comment.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " add a tap gesture recognizer", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp comment.line.double-slash.objcpp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " UITapGestureRecognizer ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp", - "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" - } - }, - { - "c": "tapGesture ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "UITapGestureRecognizer alloc", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " initWithTarget:self action:", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp storage.type.objcpp punctuation.definition.storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "selector", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "(", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp punctuation.definition.storage.type.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "handleTap:", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp meta.selector.method-name.objcpp support.function.any-method.name-of-parameter.objcpp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ")", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp meta.selector.objcpp punctuation.definition.storage.type.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSMutableArray", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp support.class.cocoa.objcpp", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.objcpp", - "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" - } - }, - { - "c": "gestureRecognizers ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NSMutableArray", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp support.class.cocoa.objcpp", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " array", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers addObject:tapGesture", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.begin.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers addObjectsFromArray:", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "scnView", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp variable.other.object.access.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.separator.dot-access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp variable.other.member.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "]", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp meta.bracket.square.access.objcpp punctuation.definition.end.bracket.square.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "scnView", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp variable.other.object.access.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.separator.dot-access.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gestureRecognizers", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp variable.other.member.objcpp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.operator.assignment.objcpp", - "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" - } - }, - { - "c": " gestureRecognizers", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.control.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " tapGesture", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp keyword.control.objcpp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nil", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp constant.language.objcpp", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.terminator.statement.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.objcpp meta.implementation.objcpp meta.scope.implementation.objcpp meta.function-with-body.objcpp meta.block.objcpp punctuation.section.block.end.bracket.curly.objcpp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp punctuation.definition.storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "end", - "t": "source.objcpp meta.implementation.objcpp storage.type.objcpp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - } -] diff --git a/extensions/perl/.vscodeignore b/extensions/perl/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/perl/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/perl/cgmanifest.json b/extensions/perl/cgmanifest.json deleted file mode 100644 index 83d91107671..00000000000 --- a/extensions/perl/cgmanifest.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "textmate/perl.tmbundle", - "repositoryUrl": "https://github.com/textmate/perl.tmbundle", - "commitHash": "80826abe75250286c2a1a07958e50e8551d3f50c" - } - }, - "licenseDetail": [ - "Copyright (c) textmate-perl.tmbundle project authors", - "", - "If not otherwise specified (see below), files in this repository fall under the following license:", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information,", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ], - "license": "TextMate Bundle License", - "description": "The files syntaxes/perl.tmLanguage.json and syntaxes/perl6.tmLanguage.json were derived from Perl.plist and Perl 6.tmLanguage from https://github.com/textmate/perl.tmbundle.", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/perl/package.json b/extensions/perl/package.json deleted file mode 100644 index 5676e219fc3..00000000000 --- a/extensions/perl/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "perl", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js textmate/perl.tmbundle Syntaxes/Perl.plist ./syntaxes/perl.tmLanguage.json Syntaxes/Perl%206.tmLanguage ./syntaxes/perl6.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "perl", - "aliases": ["Perl", "perl"], - "extensions": [".pl", ".pm", ".pod", ".t", ".PL", ".psgi"], - "firstLine": "^#!.*\\bperl\\b", - "configuration": "./perl.language-configuration.json" - }, { - "id": "perl6", - "aliases": ["Perl 6", "perl6"], - "extensions": [".p6", ".pl6", ".pm6", ".nqp"], - "firstLine": "(^#!.*\\bperl6\\b)|use\\s+v6", - "configuration": "./perl6.language-configuration.json" - }], - "grammars": [{ - "language": "perl", - "scopeName": "source.perl", - "path": "./syntaxes/perl.tmLanguage.json" - }, { - "language": "perl6", - "scopeName": "source.perl.6", - "path": "./syntaxes/perl6.tmLanguage.json" - }] - } -} \ No newline at end of file diff --git a/extensions/perl/package.nls.json b/extensions/perl/package.nls.json deleted file mode 100644 index a26752a1e1a..00000000000 --- a/extensions/perl/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Perl Language Basics", - "description": "Provides syntax highlighting and bracket matching in Perl files." -} \ No newline at end of file diff --git a/extensions/perl/perl.language-configuration.json b/extensions/perl/perl.language-configuration.json deleted file mode 100644 index 4d18f1fbaa4..00000000000 --- a/extensions/perl/perl.language-configuration.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "comments": { - "lineComment": "#" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] }, - { "open": "`", "close": "`", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["`", "`"] - ], - "folding": { - "markers": { - "start": "^(?:(?:=pod\\s*$)|(?:\\s*#region\\b))", - "end": "^(?:(?:=cut\\s*$)|(?:\\s*#endregion\\b))" - } - } -} diff --git a/extensions/perl/perl6.language-configuration.json b/extensions/perl/perl6.language-configuration.json deleted file mode 100644 index be52105cbdf..00000000000 --- a/extensions/perl/perl6.language-configuration.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "comments": { - "lineComment": "#" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] }, - { "open": "`", "close": "`", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["`", "`"] - ] -} diff --git a/extensions/perl/syntaxes/perl.tmLanguage.json b/extensions/perl/syntaxes/perl.tmLanguage.json deleted file mode 100644 index 741a4019370..00000000000 --- a/extensions/perl/syntaxes/perl.tmLanguage.json +++ /dev/null @@ -1,2539 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/perl.tmbundle/commit/80826abe75250286c2a1a07958e50e8551d3f50c", - "name": "Perl", - "scopeName": "source.perl", - "comment": "\n\tTODO:\tInclude RegExp syntax\n", - "patterns": [ - { - "include": "#line_comment" - }, - { - "begin": "^(?==[a-zA-Z]+)", - "end": "^(=cut\\b.*$)", - "endCaptures": { - "1": { - "patterns": [ - { - "include": "#pod" - } - ] - } - }, - "name": "comment.block.documentation.perl", - "patterns": [ - { - "include": "#pod" - } - ] - }, - { - "include": "#variable" - }, - { - "applyEndPatternLast": 1, - "begin": "\\b(?=qr\\s*[^\\s\\w])", - "comment": "string.regexp.compile.perl", - "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.compile.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(qr)\\s*\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\}", - "name": "string.regexp.compile.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\]", - "name": "string.regexp.compile.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": ">", - "name": "string.regexp.compile.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\)", - "name": "string.regexp.compile.nested_parens.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w\\\\'\\{\\[\\(\\<])" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - { - "begin": "(qr)\\s*'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "'", - "name": "string.regexp.compile.single-quote.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(qr)\\s*([^\\s\\w'\\{\\[\\(\\<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\2", - "name": "string.regexp.compile.simple-delimiter.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - } - ] - }, - { - "applyEndPatternLast": 1, - "begin": "(?<!\\{|\\+|\\-)\\b(?=m\\s*[^\\sa-zA-Z0-9])", - "comment": "string.regexp.find-m.perl", - "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.find-m.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(m)\\s*\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\}", - "name": "string.regexp.find-m.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - { - "begin": "(m)\\s*\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\]", - "name": "string.regexp.find-m.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - { - "begin": "(m)\\s*<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": ">", - "name": "string.regexp.find-m.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - { - "begin": "(m)\\s*\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\)", - "name": "string.regexp.find-m.nested_parens.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - { - "begin": "(m)\\s*'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "'", - "name": "string.regexp.find-m.single-quote.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\\G(?<!\\{|\\+|\\-)(m)(?!_)\\s*([^\\sa-zA-Z0-9'\\{\\[\\(\\<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\2", - "name": "string.regexp.find-m.simple-delimiter.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\sa-zA-Z0-9'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "begin": "\\[", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.end.perl" - } - }, - "name": "constant.other.character-class.set.perl", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "include": "#nested_parens_interpolated" - } - ] - } - ] - }, - { - "applyEndPatternLast": 1, - "begin": "\\b(?=(?<!\\&)(s)(\\s+\\S|\\s*[;\\,\\{\\}\\(\\)\\[<]|$))", - "comment": "string.regexp.replace.perl", - "end": "((([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\{\\}\\)\\]>]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.replace.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(s)\\s*\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\}", - "name": "string.regexp.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces" - } - ] - }, - { - "begin": "(s)\\s*\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\]", - "name": "string.regexp.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets" - } - ] - }, - { - "begin": "(s)\\s*<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": ">", - "name": "string.regexp.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_ltgt" - } - ] - }, - { - "begin": "(s)\\s*\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "\\)", - "name": "string.regexp.nested_parens.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens" - } - ] - }, - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\}", - "name": "string.regexp.format.nested_braces.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - { - "begin": "\\[", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\]", - "name": "string.regexp.format.nested_brackets.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - { - "begin": "<", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": ">", - "name": "string.regexp.format.nested_ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\)", - "name": "string.regexp.format.nested_parens.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - { - "begin": "'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "'", - "name": "string.regexp.format.single_quote.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "([^\\s\\w\\[({<;])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\1", - "name": "string.regexp.format.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "match": "\\s+" - } - ] - }, - { - "begin": "\\b(?=s([^\\sa-zA-Z0-9\\[({<]).*\\1([egimosxradlupcn]*)([\\}\\)\\;\\,]|\\s+))", - "comment": "string.regexp.replaceXXX", - "end": "((([egimosxradlupcn]*)))(?=([\\}\\)\\;\\,]|\\s+|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.replace.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(s\\s*)([^\\sa-zA-Z0-9\\[({<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "(?=\\2)", - "name": "string.regexp.replaceXXX.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "'", - "name": "string.regexp.replaceXXX.format.single_quote.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl.perl" - } - ] - }, - { - "begin": "([^\\sa-zA-Z0-9\\[({<])", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\1", - "name": "string.regexp.replaceXXX.format.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - } - ] - }, - { - "begin": "\\b(?=(?<!\\\\)s\\s*([^\\s\\w\\[({<>]))", - "comment": "string.regexp.replace.extended", - "end": "((([egimosradlupc]*x[egimosradlupc]*)))\\b", - "endCaptures": { - "1": { - "name": "string.regexp.replace.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "begin": "(s)\\s*(.)", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - }, - "1": { - "name": "support.function.perl" - } - }, - "end": "(?=\\2)", - "name": "string.regexp.replace.extended.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "'", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "'(?=[egimosradlupc]*x[egimosradlupc]*)\\b", - "name": "string.regexp.replace.extended.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(.)", - "captures": { - "0": { - "name": "punctuation.definition.string.perl" - } - }, - "end": "\\1(?=[egimosradlupc]*x[egimosradlupc]*)\\b", - "name": "string.regexp.replace.extended.simple_delimiter.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - } - ] - }, - { - "begin": "(?<=\\(|\\{|~|&|\\||if|unless|^)\\s*((\\/))", - "beginCaptures": { - "1": { - "name": "string.regexp.find.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - } - }, - "contentName": "string.regexp.find.perl", - "end": "((\\1([egimosxradlupcn]*)))(?=(\\s+\\S|\\s*[;\\,\\#\\{\\}\\)]|\\s*$))", - "endCaptures": { - "1": { - "name": "string.regexp.find.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "3": { - "name": "keyword.control.regexp-option.perl" - } - }, - "patterns": [ - { - "comment": "This is to prevent thinks like /foo$/ to treat $/ as a variable", - "match": "\\$(?=\\/)", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "captures": { - "1": { - "name": "constant.other.key.perl" - } - }, - "match": "\\b(\\w+)\\s*(?==>)" - }, - { - "match": "(?<={)\\s*\\w+\\s*(?=})", - "name": "constant.other.bareword.perl" - }, - { - "captures": { - "1": { - "name": "keyword.control.perl" - }, - "2": { - "name": "entity.name.type.class.perl" - } - }, - "match": "^\\s*(package)\\s+([^\\s;]+)", - "name": "meta.class.perl" - }, - { - "captures": { - "1": { - "name": "storage.type.sub.perl" - }, - "2": { - "name": "entity.name.function.perl" - }, - "3": { - "name": "storage.type.method.perl" - } - }, - "match": "\\b(sub)(?:\\s+([-a-zA-Z0-9_]+))?\\s*(?:\\([\\$\\@\\*;]*\\))?[^\\w\\{]", - "name": "meta.function.perl" - }, - { - "captures": { - "1": { - "name": "entity.name.function.perl" - }, - "2": { - "name": "punctuation.definition.parameters.perl" - }, - "3": { - "name": "variable.parameter.function.perl" - } - }, - "match": "^\\s*(BEGIN|UNITCHECK|CHECK|INIT|END|DESTROY)\\b", - "name": "meta.function.perl" - }, - { - "begin": "^(?=(\\t| {4}))", - "end": "(?=[^\\t\\s])", - "name": "meta.leading-tabs", - "patterns": [ - { - "captures": { - "1": { - "name": "meta.odd-tab" - }, - "2": { - "name": "meta.even-tab" - } - }, - "match": "(\\t| {4})(\\t| {4})?" - } - ] - }, - { - "captures": { - "1": { - "name": "support.function.perl" - }, - "2": { - "name": "punctuation.definition.string.perl" - }, - "5": { - "name": "punctuation.definition.string.perl" - }, - "8": { - "name": "punctuation.definition.string.perl" - } - }, - "match": "\\b(tr|y)\\s*([^A-Za-z0-9\\s])(.*?)(?<!\\\\)(\\\\{2})*(\\2)(.*?)(?<!\\\\)(\\\\{2})*(\\2)", - "name": "string.regexp.replace.perl" - }, - { - "match": "\\b(__FILE__|__LINE__|__PACKAGE__|__SUB__)\\b", - "name": "constant.language.perl" - }, - { - "begin": "\\b(__DATA__|__END__)\\n?", - "beginCaptures": { - "1": { - "name": "constant.language.perl" - } - }, - "contentName": "comment.block.documentation.perl", - "end": "\\z", - "patterns": [ - { - "include": "#pod" - } - ] - }, - { - "match": "(?<!->)\\b(continue|default|die|do|else|elsif|exit|for|foreach|given|goto|if|last|next|redo|return|select|unless|until|wait|when|while|switch|case|require|use|eval)\\b", - "name": "keyword.control.perl" - }, - { - "match": "\\b(my|our|local)\\b", - "name": "storage.modifier.perl" - }, - { - "match": "(?<!\\w)\\-[rwxoRWXOezsfdlpSbctugkTBMAC]\\b", - "name": "keyword.operator.filetest.perl" - }, - { - "match": "\\b(and|or|xor|as|not)\\b", - "name": "keyword.operator.logical.perl" - }, - { - "match": "(<=>|=>|->)", - "name": "keyword.operator.comparison.perl" - }, - { - "begin": "(((<<) *\"HTML\"))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.doublequote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.html.embedded.perl", - "end": "(^HTML$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(((<<) *\"XML\"))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.doublequote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.xml.embedded.perl", - "end": "(^XML$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.xml" - } - ] - }, - { - "begin": "(((<<) *\"CSS\"))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.doublequote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.css.embedded.perl", - "end": "(^CSS$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.css" - } - ] - }, - { - "begin": "(((<<) *\"JAVASCRIPT\"))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.doublequote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.js.embedded.perl", - "end": "(^JAVASCRIPT$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.js" - } - ] - }, - { - "begin": "(((<<) *\"SQL\"))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.doublequote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "source.sql.embedded.perl", - "end": "(^SQL$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.sql" - } - ] - }, - { - "begin": "(((<<) *\"POSTSCRIPT\"))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.doublequote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.postscript.embedded.perl", - "end": "(^POSTSCRIPT$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.postscript" - } - ] - }, - { - "begin": "(((<<) *\"([^\"]*)\"))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.doublequote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.doublequote.perl", - "end": "(^\\4$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(((<<) *'HTML'))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.html.embedded.perl", - "end": "(^HTML$)", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(((<<) *'XML'))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.xml.embedded.perl", - "end": "(^XML$)", - "patterns": [ - { - "include": "text.xml" - } - ] - }, - { - "begin": "(((<<) *'CSS'))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.css.embedded.perl", - "end": "(^CSS$)", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "(((<<) *'JAVASCRIPT'))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.js.embedded.perl", - "end": "(^JAVASCRIPT$)", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(((<<) *'SQL'))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "source.sql.embedded.perl", - "end": "(^SQL$)", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "begin": "(((<<) *'POSTSCRIPT'))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "source.postscript.embedded.perl", - "end": "(^POSTSCRIPT$)", - "patterns": [ - { - "include": "source.postscript" - } - ] - }, - { - "begin": "(((<<) *'([^']*)'))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.quote.perl", - "end": "(^\\4$)" - }, - { - "begin": "(((<<) *\\\\((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.quote.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.quote.perl", - "end": "(^\\4$)" - }, - { - "begin": "(((<<) *`([^`]*)`))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.backtick.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.backtick.perl", - "end": "(^\\4$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(((<<) *HTML\\b))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.html.embedded.perl", - "end": "(^HTML$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(((<<) *XML\\b))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "text.xml.embedded.perl", - "end": "(^XML$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "text.xml" - } - ] - }, - { - "begin": "(((<<) *JAVASCRIPT\\b))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "source.js.embedded.perl", - "end": "(^JAVASCRIPT$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.js" - } - ] - }, - { - "begin": "(((<<) *SQL\\b))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "source.sql.embedded.perl", - "end": "(^SQL$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.sql" - } - ] - }, - { - "begin": "(((<<) *POSTSCRIPT\\b))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "4": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "source.postscript.embedded.perl", - "end": "(^POSTSCRIPT$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "source.postscript" - } - ] - }, - { - "begin": "(((<<) *((?![=\\d\\$\\( ])[^;,'\"`\\s\\)]*)))(.*)\\n?", - "captures": { - "1": { - "name": "punctuation.definition.string.perl" - }, - "2": { - "name": "string.unquoted.heredoc.perl" - }, - "3": { - "name": "punctuation.definition.heredoc.perl" - }, - "5": { - "patterns": [ - { - "include": "$self" - } - ] - } - }, - "contentName": "string.unquoted.heredoc.perl", - "end": "(^\\4$)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqq\\s*([^\\(\\{\\[\\<\\w\\s])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*([^'\\(\\{\\[\\<\\w\\s])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx.single-quote.perl", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.double.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqw?\\s*([^\\(\\{\\[\\<\\w\\s])", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\1", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q.perl" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.single.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqq\\s*\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-paren.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqq\\s*\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-brace.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqq\\s*\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-bracket.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqq\\s*\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.qq-ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_ltgt_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqx\\s*\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-paren.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-brace.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-bracket.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "\\bqx\\s*\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.interpolated.qx-ltgt.perl", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_ltgt_interpolated" - }, - { - "include": "#variable" - } - ] - }, - { - "begin": "(?<!->)\\bqw?\\s*\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-paren.perl", - "patterns": [ - { - "include": "#nested_parens" - } - ] - }, - { - "begin": "\\bqw?\\s*\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-brace.perl", - "patterns": [ - { - "include": "#nested_braces" - } - ] - }, - { - "begin": "\\bqw?\\s*\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-bracket.perl", - "patterns": [ - { - "include": "#nested_brackets" - } - ] - }, - { - "begin": "\\bqw?\\s*\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.other.q-ltgt.perl", - "patterns": [ - { - "include": "#nested_ltgt" - } - ] - }, - { - "begin": "^__\\w+__", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.unquoted.program-block.perl" - }, - { - "begin": "\\b(format)\\s+(\\w+)\\s*=", - "beginCaptures": { - "1": { - "name": "support.function.perl" - }, - "2": { - "name": "entity.name.function.format.perl" - } - }, - "end": "^\\.\\s*$", - "name": "meta.format.perl", - "patterns": [ - { - "include": "#line_comment" - }, - { - "include": "#variable" - } - ] - }, - { - "captures": { - "1": { - "name": "support.function.perl" - }, - "2": { - "name": "entity.name.function.perl" - } - }, - "match": "\\b(x)\\s*(\\d+)\\b" - }, - { - "match": "\\b(ARGV|DATA|ENV|SIG|STDERR|STDIN|STDOUT|atan2|bind|binmode|bless|caller|chdir|chmod|chomp|chop|chown|chr|chroot|close|closedir|cmp|connect|cos|crypt|dbmclose|dbmopen|defined|delete|dump|each|endgrent|endhostent|endnetent|endprotoent|endpwent|endservent|eof|eq|eval|exec|exists|exp|fcntl|fileno|flock|fork|formline|ge|getc|getgrent|getgrgid|getgrnam|gethostbyaddr|gethostbyname|gethostent|getlogin|getnetbyaddr|getnetbyname|getnetent|getpeername|getpgrp|getppid|getpriority|getprotobyname|getprotobynumber|getprotoent|getpwent|getpwnam|getpwuid|getservbyname|getservbyport|getservent|getsockname|getsockopt|glob|gmtime|grep|gt|hex|import|index|int|ioctl|join|keys|kill|lc|lcfirst|le|length|link|listen|local|localtime|log|lstat|lt|m|map|mkdir|msgctl|msgget|msgrcv|msgsnd|ne|no|oct|open|opendir|ord|pack|pipe|pop|pos|print|printf|push|quotemeta|rand|read|readdir|readlink|recv|ref|rename|reset|reverse|rewinddir|rindex|rmdir|s|say|scalar|seek|seekdir|semctl|semget|semop|send|setgrent|sethostent|setnetent|setpgrp|setpriority|setprotoent|setpwent|setservent|setsockopt|shift|shmctl|shmget|shmread|shmwrite|shutdown|sin|sleep|socket|socketpair|sort|splice|split|sprintf|sqrt|srand|stat|study|substr|symlink|syscall|sysopen|sysread|system|syswrite|tell|telldir|tie|tied|time|times|tr|truncate|uc|ucfirst|umask|undef|unlink|unpack|unshift|untie|utime|values|vec|waitpid|wantarray|warn|write|y)\\b", - "name": "support.function.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.section.scope.begin.perl" - }, - "2": { - "name": "punctuation.section.scope.end.perl" - } - }, - "comment": "Match empty brackets for ↩ snippet", - "match": "(\\{)(\\})" - }, - { - "captures": { - "1": { - "name": "punctuation.section.scope.begin.perl" - }, - "2": { - "name": "punctuation.section.scope.end.perl" - } - }, - "comment": "Match empty parenthesis for ↩ snippet", - "match": "(\\()(\\))" - } - ], - "repository": { - "escaped_char": { - "patterns": [ - { - "match": "\\\\\\d+", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\c[^\\s\\\\]", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\g(?:\\{(?:\\w*|-\\d+)\\}|\\d+)", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\k(?:\\{\\w*\\}|<\\w*>|'\\w*')", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\N\\{[^\\}]*\\}", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\o\\{\\d*\\}", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\(?:p|P)(?:\\{\\w*\\}|P)", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\x(?:[0-9a-zA-Z]{2}|\\{\\w*\\})?", - "name": "constant.character.escape.perl" - }, - { - "match": "\\\\.", - "name": "constant.character.escape.perl" - } - ] - }, - "line_comment": { - "patterns": [ - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.perl" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.perl" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.perl" - } - ] - } - ] - }, - "nested_braces": { - "begin": "\\{", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_braces" - } - ] - }, - "nested_braces_interpolated": { - "begin": "\\{", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_braces_interpolated" - } - ] - }, - "nested_brackets": { - "begin": "\\[", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_brackets" - } - ] - }, - "nested_brackets_interpolated": { - "begin": "\\[", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_brackets_interpolated" - } - ] - }, - "nested_ltgt": { - "begin": "<", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": ">", - "patterns": [ - { - "include": "#nested_ltgt" - } - ] - }, - "nested_ltgt_interpolated": { - "begin": "<", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": ">", - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#nested_ltgt_interpolated" - } - ] - }, - "nested_parens": { - "begin": "\\(", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#nested_parens" - } - ] - }, - "nested_parens_interpolated": { - "begin": "\\(", - "captures": { - "1": { - "name": "punctuation.section.scope.perl" - } - }, - "end": "\\)", - "patterns": [ - { - "comment": "This is to prevent thinks like qr/foo$/ to treat $/ as a variable", - "match": "\\$(?=[^\\s\\w'\\{\\[\\(\\<])", - "name": "keyword.control.anchor.perl" - }, - { - "include": "#escaped_char" - }, - { - "include": "#variable" - }, - { - "include": "#nested_parens_interpolated" - } - ] - }, - "pod": { - "patterns": [ - { - "match": "^=(pod|back|cut)\\b", - "name": "storage.type.class.pod.perl" - }, - { - "begin": "^(=begin)\\s+(html)\\s*$", - "beginCaptures": { - "1": { - "name": "storage.type.class.pod.perl" - }, - "2": { - "name": "variable.other.pod.perl" - } - }, - "contentName": "text.embedded.html.basic", - "end": "^(=end)\\s+(html)|^(?==cut)", - "endCaptures": { - "1": { - "name": "storage.type.class.pod.perl" - }, - "2": { - "name": "variable.other.pod.perl" - } - }, - "name": "meta.embedded.pod.perl", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.class.pod.perl" - }, - "2": { - "name": "variable.other.pod.perl", - "patterns": [ - { - "include": "#pod-formatting" - } - ] - } - }, - "match": "^(=(?:head[1-4]|item|over|encoding|begin|end|for))\\b\\s*(.*)" - }, - { - "include": "#pod-formatting" - } - ] - }, - "pod-formatting": { - "patterns": [ - { - "captures": { - "1": { - "name": "markup.italic.pod.perl" - }, - "2": { - "name": "markup.italic.pod.perl" - } - }, - "match": "I(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)", - "name": "entity.name.type.instance.pod.perl" - }, - { - "captures": { - "1": { - "name": "markup.bold.pod.perl" - }, - "2": { - "name": "markup.bold.pod.perl" - } - }, - "match": "B(?:<([^<>]+)>|<+(\\s+(?:(?<!\\s)>|[^>])+\\s+)>+)", - "name": "entity.name.type.instance.pod.perl" - }, - { - "captures": { - "1": { - "name": "markup.raw.pod.perl" - }, - "2": { - "name": "markup.raw.pod.perl" - } - }, - "match": "C(?:<([^<>]+)>|<+(\\\\s+(?:(?<!\\\\s)>|[^>])+\\\\s+)>+)", - "name": "entity.name.type.instance.pod.perl" - }, - { - "captures": { - "1": { - "name": "markup.underline.link.hyperlink.pod.perl" - } - }, - "match": "L<([^>]+)>", - "name": "entity.name.type.instance.pod.perl" - }, - { - "match": "[EFSXZ]<[^>]*>", - "name": "entity.name.type.instance.pod.perl" - } - ] - }, - "variable": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)&(?![A-Za-z0-9_])", - "name": "variable.other.regexp.match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)`(?![A-Za-z0-9_])", - "name": "variable.other.regexp.pre-match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)'(?![A-Za-z0-9_])", - "name": "variable.other.regexp.post-match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)\\+(?![A-Za-z0-9_])", - "name": "variable.other.regexp.last-paren-match.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)\"(?![A-Za-z0-9_])", - "name": "variable.other.readwrite.list-separator.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)0(?![A-Za-z0-9_])", - "name": "variable.other.predefined.program-name.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)[_ab\\*\\.\\/\\|,\\\\;#%=\\-~^:?!\\$<>\\(\\)\\[\\]@](?![A-Za-z0-9_])", - "name": "variable.other.predefined.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$)[0-9]+(?![A-Za-z0-9_])", - "name": "variable.other.subpattern.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "([\\$\\@\\%](#)?)([a-zA-Zx7f-xff\\$]|::)([a-zA-Z0-9_x7f-xff\\$]|::)*\\b", - "name": "variable.other.readwrite.global.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - }, - "2": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "(\\$\\{)(?:[a-zA-Zx7f-xff\\$]|::)(?:[a-zA-Z0-9_x7f-xff\\$]|::)*(\\})", - "name": "variable.other.readwrite.global.perl" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.perl" - } - }, - "match": "([\\$\\@\\%](#)?)[0-9_]\\b", - "name": "variable.other.readwrite.global.special.perl" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/perl/syntaxes/perl6.tmLanguage.json b/extensions/perl/syntaxes/perl6.tmLanguage.json deleted file mode 100644 index 89c69ebe79b..00000000000 --- a/extensions/perl/syntaxes/perl6.tmLanguage.json +++ /dev/null @@ -1,315 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/perl.tmbundle/blob/master/Syntaxes/Perl%206.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/perl.tmbundle/commit/d9841a0878239fa43f88c640f8d458590f97e8f5", - "name": "Perl 6", - "scopeName": "source.perl.6", - "patterns": [ - { - "begin": "^=begin", - "end": "^=end", - "name": "comment.block.perl" - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.perl" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.perl" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.perl" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.class.perl.6" - }, - "3": { - "name": "entity.name.type.class.perl.6" - } - }, - "match": "(class|enum|grammar|knowhow|module|package|role|slang|subset)(\\s+)(((?:::|')?(?:([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*))+)", - "name": "meta.class.perl.6" - }, - { - "begin": "(?<=\\s)'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.single.perl", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.perl" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.perl" - } - }, - "name": "string.quoted.double.perl", - "patterns": [ - { - "match": "\\\\[abtnfre\"\\\\]", - "name": "constant.character.escape.perl" - } - ] - }, - { - "begin": "q(q|to|heredoc)*\\s*:?(q|to|heredoc)*\\s*/(.+)/", - "end": "\\3", - "name": "string.quoted.single.heredoc.perl" - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{{", - "end": "}}", - "name": "string.quoted.double.heredoc.brace.perl", - "patterns": [ - { - "include": "#qq_brace_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(\\(", - "end": "\\)\\)", - "name": "string.quoted.double.heredoc.paren.perl", - "patterns": [ - { - "include": "#qq_paren_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[\\[", - "end": "\\]\\]", - "name": "string.quoted.double.heredoc.bracket.perl", - "patterns": [ - { - "include": "#qq_bracket_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*{", - "end": "}", - "name": "string.quoted.single.heredoc.brace.perl", - "patterns": [ - { - "include": "#qq_brace_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*/", - "end": "/", - "name": "string.quoted.single.heredoc.slash.perl", - "patterns": [ - { - "include": "#qq_slash_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\(", - "end": "\\)", - "name": "string.quoted.single.heredoc.paren.perl", - "patterns": [ - { - "include": "#qq_paren_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\\[", - "end": "\\]", - "name": "string.quoted.single.heredoc.bracket.perl", - "patterns": [ - { - "include": "#qq_bracket_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*'", - "end": "'", - "name": "string.quoted.single.heredoc.single.perl", - "patterns": [ - { - "include": "#qq_single_string_content" - } - ] - }, - { - "begin": "(q|Q)(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*:?(x|exec|w|words|ww|quotewords|v|val|q|single|qq|double|s|scalar|a|array|h|hash|f|function|c|closure|b|blackslash|regexp|substr|trans|codes|p|path)*\\s*\"", - "end": "\"", - "name": "string.quoted.single.heredoc.double.perl", - "patterns": [ - { - "include": "#qq_double_string_content" - } - ] - }, - { - "match": "\\b\\$\\w+\\b", - "name": "variable.other.perl" - }, - { - "match": "\\b(macro|sub|submethod|method|multi|proto|only|rule|token|regex|category)\\b", - "name": "storage.type.declare.routine.perl" - }, - { - "match": "\\b(self)\\b", - "name": "variable.language.perl" - }, - { - "match": "\\b(use|require)\\b", - "name": "keyword.other.include.perl" - }, - { - "match": "\\b(if|else|elsif|unless)\\b", - "name": "keyword.control.conditional.perl" - }, - { - "match": "\\b(let|my|our|state|temp|has|constant)\\b", - "name": "storage.type.variable.perl" - }, - { - "match": "\\b(for|loop|repeat|while|until|gather|given)\\b", - "name": "keyword.control.repeat.perl" - }, - { - "match": "\\b(take|do|when|next|last|redo|return|contend|maybe|defer|default|exit|make|continue|break|goto|leave|async|lift)\\b", - "name": "keyword.control.flowcontrol.perl" - }, - { - "match": "\\b(is|as|but|trusts|of|returns|handles|where|augment|supersede)\\b", - "name": "storage.modifier.type.constraints.perl" - }, - { - "match": "\\b(BEGIN|CHECK|INIT|START|FIRST|ENTER|LEAVE|KEEP|UNDO|NEXT|LAST|PRE|POST|END|CATCH|CONTROL|TEMP)\\b", - "name": "meta.function.perl" - }, - { - "match": "\\b(die|fail|try|warn)\\b", - "name": "keyword.control.control-handlers.perl" - }, - { - "match": "\\b(prec|irs|ofs|ors|export|deep|binary|unary|reparsed|rw|parsed|cached|readonly|defequiv|will|ref|copy|inline|tighter|looser|equiv|assoc|required)\\b", - "name": "storage.modifier.perl" - }, - { - "match": "\\b(NaN|Inf)\\b", - "name": "constant.numeric.perl" - }, - { - "match": "\\b(oo|fatal)\\b", - "name": "keyword.other.pragma.perl" - }, - { - "match": "\\b(Object|Any|Junction|Whatever|Capture|MatchSignature|Proxy|Matcher|Package|Module|ClassGrammar|Scalar|Array|Hash|KeyHash|KeySet|KeyBagPair|List|Seq|Range|Set|Bag|Mapping|Void|UndefFailure|Exception|Code|Block|Routine|Sub|MacroMethod|Submethod|Regex|Str|str|Blob|Char|ByteCodepoint|Grapheme|StrPos|StrLen|Version|NumComplex|num|complex|Bit|bit|bool|True|FalseIncreasing|Decreasing|Ordered|Callable|AnyCharPositional|Associative|Ordering|KeyExtractorComparator|OrderingPair|IO|KitchenSink|RoleInt|int|int1|int2|int4|int8|int16|int32|int64Rat|rat|rat1|rat2|rat4|rat8|rat16|rat32|rat64Buf|buf|buf1|buf2|buf4|buf8|buf16|buf32|buf64UInt|uint|uint1|uint2|uint4|uint8|uint16|uint32uint64|Abstraction|utf8|utf16|utf32)\\b", - "name": "support.type.perl6" - }, - { - "match": "\\b(div|xx|x|mod|also|leg|cmp|before|after|eq|ne|le|lt|not|gt|ge|eqv|ff|fff|and|andthen|or|xor|orelse|extra|lcm|gcd)\\b", - "name": "keyword.operator.perl" - }, - { - "match": "(\\$|@|%|&)(\\*|:|!|\\^|~|=|\\?|(<(?=.+>)))?([a-zA-Z_\\x{C0}-\\x{FF}\\$])([a-zA-Z0-9_\\x{C0}-\\x{FF}\\$]|[\\-'][a-zA-Z0-9_\\x{C0}-\\x{FF}\\$])*", - "name": "variable.other.identifier.perl.6" - }, - { - "match": "\\b(eager|hyper|substr|index|rindex|grep|map|sort|join|lines|hints|chmod|split|reduce|min|max|reverse|truncate|zip|cat|roundrobin|classify|first|sum|keys|values|pairs|defined|delete|exists|elems|end|kv|any|all|one|wrap|shape|key|value|name|pop|push|shift|splice|unshift|floor|ceiling|abs|exp|log|log10|rand|sign|sqrt|sin|cos|tan|round|strand|roots|cis|unpolar|polar|atan2|pick|chop|p5chop|chomp|p5chomp|lc|lcfirst|uc|ucfirst|capitalize|normalize|pack|unpack|quotemeta|comb|samecase|sameaccent|chars|nfd|nfc|nfkd|nfkc|printf|sprintf|caller|evalfile|run|runinstead|nothing|want|bless|chr|ord|gmtime|time|eof|localtime|gethost|getpw|chroot|getlogin|getpeername|kill|fork|wait|perl|graphs|codes|bytes|clone|print|open|read|write|readline|say|seek|close|opendir|readdir|slurp|spurt|shell|run|pos|fmt|vec|link|unlink|symlink|uniq|pair|asin|atan|sec|cosec|cotan|asec|acosec|acotan|sinh|cosh|tanh|asinh|done|acos|acosh|atanh|sech|cosech|cotanh|sech|acosech|acotanh|asech|ok|nok|plan_ok|dies_ok|lives_ok|skip|todo|pass|flunk|force_todo|use_ok|isa_ok|diag|is_deeply|isnt|like|skip_rest|unlike|cmp_ok|eval_dies_ok|nok_error|eval_lives_ok|approx|is_approx|throws_ok|version_lt|plan|EVAL|succ|pred|times|nonce|once|signature|new|connect|operator|undef|undefine|sleep|from|to|infix|postfix|prefix|circumfix|postcircumfix|minmax|lazy|count|unwrap|getc|pi|e|context|void|quasi|body|each|contains|rewinddir|subst|can|isa|flush|arity|assuming|rewind|callwith|callsame|nextwith|nextsame|attr|eval_elsewhere|none|srand|trim|trim_start|trim_end|lastcall|WHAT|WHERE|HOW|WHICH|VAR|WHO|WHENCE|ACCEPTS|REJECTS|not|true|iterator|by|re|im|invert|flip|gist|flat|tree|is-prime|throws_like|trans)\\b", - "name": "support.function.perl" - } - ], - "repository": { - "qq_brace_string_content": { - "begin": "{", - "end": "}", - "patterns": [ - { - "include": "#qq_brace_string_content" - } - ] - }, - "qq_bracket_string_content": { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#qq_bracket_string_content" - } - ] - }, - "qq_double_string_content": { - "begin": "\"", - "end": "\"", - "patterns": [ - { - "include": "#qq_double_string_content" - } - ] - }, - "qq_paren_string_content": { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#qq_paren_string_content" - } - ] - }, - "qq_single_string_content": { - "begin": "'", - "end": "'", - "patterns": [ - { - "include": "#qq_single_string_content" - } - ] - }, - "qq_slash_string_content": { - "begin": "\\\\/", - "end": "\\\\/", - "patterns": [ - { - "include": "#qq_slash_string_content" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/perl/test/colorize-fixtures/test.pl b/extensions/perl/test/colorize-fixtures/test.pl deleted file mode 100644 index e107dcb539f..00000000000 --- a/extensions/perl/test/colorize-fixtures/test.pl +++ /dev/null @@ -1,46 +0,0 @@ -use strict; - -my $badfound = 0; -sub check_line { - my($fn, $line) = @_; - - # Check for that =. - if($line =~ /^\s*if\s*\(.*[^!<>=]=([^=].*\)|\))/) { - if(!$badfound) { - print("The following suspicious lines were found:\n"); - $badfound = 1; - } - print "$fn:$.: $line\n"; - } -} - -# -# This function opens and reads one file, and calls -# check_line to analyze each line. Call it with the -# file name. -# -sub check_file { - my($fn) = @_; - - if(!open(IN, $fn)) { - print "Cannot read $fn.\n"; - return; - } - - my($line); - while($line = <IN>) - { - chomp $line; - check_line($fn,$line); - } - - close IN; -} - -# -# Go through the argument list and check each file -# -while(my $fn = shift @ARGV) { - check_file($fn); -} -if(!$badfound) { print "No suspicious lines were found.\n"; } \ No newline at end of file diff --git a/extensions/perl/test/colorize-fixtures/test2.pl b/extensions/perl/test/colorize-fixtures/test2.pl deleted file mode 100644 index 0a089b3b21a..00000000000 --- a/extensions/perl/test/colorize-fixtures/test2.pl +++ /dev/null @@ -1,31 +0,0 @@ -die("[$sheet->{label}] Unexpected sheet format.") unless ( - $sheet->{"$date_col$row"} =~ /CALL_DATE/i && - $sheet->{"$pixel_cols[4]$row"} =~ /Home_Bind_Count/i - ); - - $row++; - while ($row < $sheet->{maxrow}) { - $row++; - $total_lines++; - - my $date = $sheet->{"$date_col$row"}; - next unless $date; - (warning "Unexpected date format: '$date'"), next unless ($date =~ /^2\d\d\d-\d\d-\d\d$/); - - my $phone = trim($sheet->{"$phone_col$row"}); - (warning "Unexpected phone format: '$phone'."), next unless ($phone =~ /^\d{10}$/); - - info $phone; - next if ($date gt $date_to || $date lt $date_from); - - my @pixels = (0) x 5; - for (1..4) { - $pixels[$_] = trim($sheet->{"$pixel_cols[4]$row"}); - (warning "Pixel $_ is not a number in the row # $row."), next unless looks_like_number($pixels[$_]); - }; - - for (1..4) { - add_phone_activity($date, $phone, "pixel-$_", $pixels[$_]) if $pixels[$_]; - }; - $parsed_lines++; - }; \ No newline at end of file diff --git a/extensions/perl/test/colorize-results/test2_pl.json b/extensions/perl/test/colorize-results/test2_pl.json deleted file mode 100644 index 6fc00b0b064..00000000000 --- a/extensions/perl/test/colorize-results/test2_pl.json +++ /dev/null @@ -1,3313 +0,0 @@ -[ - { - "c": "die", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "[", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "sheet", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "->{label}] Unexpected sheet format.", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ") ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unless", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "sheet", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "->", - "t": "source.perl keyword.operator.comparison.perl", - "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" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date_col$row", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "} =~ ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "CALL_DATE", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "i", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl keyword.control.regexp-option.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " &&", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "sheet", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "->", - "t": "source.perl keyword.operator.comparison.perl", - "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" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "pixel_cols", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[4]", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "row", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "} =~ ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "Home_Bind_Count", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "i", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl keyword.control.regexp-option.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "row", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "while", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "row", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " < ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "sheet", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "->", - "t": "source.perl keyword.operator.comparison.perl", - "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" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "maxrow", - "t": "source.perl constant.other.bareword.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}) {", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "row", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "total_lines", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " = ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "sheet", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "->", - "t": "source.perl keyword.operator.comparison.perl", - "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" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date_col$row", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "};", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "next", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unless", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(warning ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Unexpected date format: '", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "'", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "), ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "next", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unless", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " =~ ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "^2", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\d\\d\\d", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "-", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\d\\d", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "-", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\d\\d", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "$", - "t": "source.perl string.regexp.find.perl keyword.control.anchor.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "phone", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " = trim(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "sheet", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "->", - "t": "source.perl keyword.operator.comparison.perl", - "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" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "phone_col$row", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "});", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(warning ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Unexpected phone format: '", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "phone", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "'.", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "), ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "next", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unless", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "phone", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " =~ ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "^", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\d", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "{10}", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "$", - "t": "source.perl string.regexp.find.perl keyword.control.anchor.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "info ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "phone", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "next", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gt", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date_to", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " || ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "lt", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date_from", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "pixels", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " = (0) ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.perl entity.name.function.perl", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (1..4) {", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "pixels", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.predefined.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl variable.other.predefined.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "] = trim(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "sheet", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "->", - "t": "source.perl keyword.operator.comparison.perl", - "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" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "pixel_cols", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[4]", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "row", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "});", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(warning ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Pixel ", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.predefined.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl string.quoted.double.perl variable.other.predefined.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " is not a number in the row # ", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "row", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "), ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "next", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unless", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " looks_like_number(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "pixels", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.predefined.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl variable.other.predefined.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "]);", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "};", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " (1..4) {", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "add_phone_activity(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "date", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ", ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "phone", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ", ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "pixel-", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.predefined.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl string.quoted.double.perl variable.other.predefined.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ", ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "pixels", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.predefined.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl variable.other.predefined.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "]) ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "pixels", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.predefined.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl variable.other.predefined.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "];", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "};", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "parsed_lines", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "};", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/perl/test/colorize-results/test_pl.json b/extensions/perl/test/colorize-results/test_pl.json deleted file mode 100644 index e47c0f95e84..00000000000 --- a/extensions/perl/test/colorize-results/test_pl.json +++ /dev/null @@ -1,2312 +0,0 @@ -[ - { - "c": "use", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " strict;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "badfound", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " = 0;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sub", - "t": "source.perl meta.function.perl storage.type.sub.perl", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.perl meta.function.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "check_line", - "t": "source.perl meta.function.perl entity.name.function.perl", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl meta.function.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ", ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "line", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ") = ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.perl variable.other.readwrite.global.special.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl variable.other.readwrite.global.special.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl punctuation.whitespace.comment.leading.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Check for that =.", - "t": "source.perl comment.line.number-sign.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "line", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " =~ ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "^", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\s", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "*if", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\s", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "*", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\(", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": ".*[^!<>=]=([^=].*", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\)", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "|", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\)", - "t": "source.perl string.regexp.find.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": ")", - "t": "source.perl string.regexp.find.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "/", - "t": "source.perl string.regexp.find.perl punctuation.definition.string.perl", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": ") {", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(!", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "badfound", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ") {", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "print", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "The following suspicious lines were found:", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\n", - "t": "source.perl string.quoted.double.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "badfound", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " = 1;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "print", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.predefined.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.perl string.quoted.double.perl variable.other.predefined.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ": ", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "line", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\\n", - "t": "source.perl string.quoted.double.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " This function opens and reads one file, and calls", - "t": "source.perl comment.line.number-sign.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " check_line to analyze each line. Call it with the", - "t": "source.perl comment.line.number-sign.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " file name.", - "t": "source.perl comment.line.number-sign.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "sub", - "t": "source.perl meta.function.perl storage.type.sub.perl", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.perl meta.function.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "check_file", - "t": "source.perl meta.function.perl entity.name.function.perl", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl meta.function.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ") = ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.perl variable.other.readwrite.global.special.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.perl variable.other.readwrite.global.special.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(!", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "open", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(IN, ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")) {", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "print", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Cannot read ", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl string.quoted.double.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\n", - "t": "source.perl string.quoted.double.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "line", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "while", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "line", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " = <IN>)", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "chomp", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "line", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.even-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "check_line(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "line", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "close", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " IN;", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Go through the argument list and check each file", - "t": "source.perl comment.line.number-sign.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.perl comment.line.number-sign.perl punctuation.definition.comment.perl", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "while", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "my", - "t": "source.perl storage.modifier.perl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " = ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "shift", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "ARGV", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ") {", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.perl meta.leading-tabs meta.odd-tab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "check_file(", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "fn", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ");", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.perl keyword.control.perl", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(!", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.perl variable.other.readwrite.global.perl punctuation.definition.variable.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "badfound", - "t": "source.perl variable.other.readwrite.global.perl", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ") { ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "print", - "t": "source.perl support.function.perl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.begin.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "No suspicious lines were found.", - "t": "source.perl string.quoted.double.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\n", - "t": "source.perl string.quoted.double.perl constant.character.escape.perl", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\"", - "t": "source.perl string.quoted.double.perl punctuation.definition.string.end.perl", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "; }", - "t": "source.perl", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/php/.vscode/launch.json b/extensions/php/.vscode/launch.json deleted file mode 100644 index 37fca074bad..00000000000 --- a/extensions/php/.vscode/launch.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "version": "0.2.0", - "configurations": [ - { - "name": "Launch Extension", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": [ - "--extensionDevelopmentPath=${workspaceFolder}" - ], - "stopOnEntry": false, - "sourceMaps": true, - "preLaunchTask": "npm" - } - ] -} diff --git a/extensions/php/.vscode/tasks.json b/extensions/php/.vscode/tasks.json deleted file mode 100644 index 390a93a3a7f..00000000000 --- a/extensions/php/.vscode/tasks.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "2.0.0", - "command": "npm", - "type": "shell", - "presentation": { - "reveal": "silent" - }, - "args": ["run", "compile"], - "isBackground": true, - "problemMatcher": "$tsc-watch" -} diff --git a/extensions/php/.vscodeignore b/extensions/php/.vscodeignore deleted file mode 100644 index 5da0ed79e46..00000000000 --- a/extensions/php/.vscodeignore +++ /dev/null @@ -1,7 +0,0 @@ -test/** -build/** -out/test/** -src/** -tsconfig.json -cgmanifest.json -.vscode \ No newline at end of file diff --git a/extensions/php/build/update-grammar.js b/extensions/php/build/update-grammar.js deleted file mode 100644 index 18b4b33a854..00000000000 --- a/extensions/php/build/update-grammar.js +++ /dev/null @@ -1,75 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -'use strict'; - -const updateGrammar = require('../../../build/npm/update-grammar'); - -function adaptInjectionScope(grammar) { - // we're using the HTML grammar from https://github.com/textmate/html.tmbundle which has moved away from source.js.embedded.html - // also we need to add source.css scope for PHP code in <style> tags, which are handled differently in atom - const oldInjectionKey = "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js.embedded.html - (meta.embedded.block.php | meta.embedded.line.php))"; - const newInjectionKey = "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.css - (meta.embedded.block.php | meta.embedded.line.php))"; - - const injections = grammar.injections; - const injection = injections[oldInjectionKey]; - if (!injection) { - throw new Error("Can not find PHP injection to patch"); - } - delete injections[oldInjectionKey]; - injections[newInjectionKey] = injection; -} - -function includeDerivativeHtml(grammar) { - grammar.patterns.forEach(pattern => { - if (pattern.include === 'text.html.basic') { - pattern.include = 'text.html.derivative'; - } - }); -} - -// Workaround for https://github.com/microsoft/vscode/issues/40279 -// and https://github.com/microsoft/vscode-textmate/issues/59 -function fixBadRegex(grammar) { - function fail(msg) { - throw new Error(`fixBadRegex callback couldn't patch ${msg}. It may be obsolete`); - } - - const scopeResolution = grammar.repository['scope-resolution']; - if (scopeResolution) { - const match = scopeResolution.patterns[0].match; - if (match === '(?i)([a-z_\\x{7f}-\\x{7fffffff}\\\\][a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(?=\\s*::)') { - scopeResolution.patterns[0].match = '([A-Za-z_\\x{7f}-\\x{7fffffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(?=\\s*::)'; - } else { - fail('scope-resolution.match'); - } - } else { - fail('scope-resolution'); - } - - const functionCall = grammar.repository['function-call']; - if (functionCall) { - const begin0 = functionCall.patterns[0].begin; - if (begin0 === '(?xi)\n(\n \\\\?(?<![a-z0-9_\\x{7f}-\\x{7fffffff}]) # Optional root namespace\n [a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]* # First namespace\n (?:\\\\[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)+ # Additional namespaces\n)\\s*(\\()') { - functionCall.patterns[0].begin = '(?x)\n(\n \\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]) # Optional root namespace\n [a-zA-Z_\\x{7f}-\\x{7fffffff}][a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]* # First namespace\n (?:\\\\[a-zA-Z_\\x{7f}-\\x{7fffffff}][a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]*)+ # Additional namespaces\n)\\s*(\\()'; - } else { - fail('function-call.begin0'); - } - - const begin1 = functionCall.patterns[1].begin; - if (begin1 === '(?i)(\\\\)?(?<![a-z0-9_\\x{7f}-\\x{7fffffff}])([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(\\()') { - functionCall.patterns[1].begin = '(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{7fffffff}])([a-zA-Z_\\x{7f}-\\x{7fffffff}][a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(\\()'; - } else { - fail('function-call.begin1'); - } - } else { - fail('function-call'); - } -} - -updateGrammar.update('atom/language-php', 'grammars/php.cson', './syntaxes/php.tmLanguage.json', fixBadRegex); -updateGrammar.update('atom/language-php', 'grammars/html.cson', './syntaxes/html.tmLanguage.json', grammar => { - adaptInjectionScope(grammar); - includeDerivativeHtml(grammar); -}); diff --git a/extensions/php/cgmanifest.json b/extensions/php/cgmanifest.json deleted file mode 100644 index 15b73aeaf6c..00000000000 --- a/extensions/php/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "language-php", - "repositoryUrl": "https://github.com/atom/language-php", - "commitHash": "72739e6341b1b4bf4aa185e928932983baca449e" - } - }, - "license": "MIT", - "version": "0.46.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/php/language-configuration.json b/extensions/php/language-configuration.json deleted file mode 100644 index 9c24c7b724b..00000000000 --- a/extensions/php/language-configuration.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "comments": { - "lineComment": "//", // "#" - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}", "notIn": ["string"] }, - { "open": "[", "close": "]", "notIn": ["string"] }, - { "open": "(", "close": ")", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string", "comment"] }, - { "open": "/**", "close": " */", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["'", "'"], - ["\"", "\""], - ["`", "`"] - ], - "indentationRules": { - "increaseIndentPattern": "({(?!.*}).*|\\(|\\[|((else(\\s)?)?if|else|for(each)?|while|switch|case).*:)\\s*((/[/*].*|)?$|\\?>)", - "decreaseIndentPattern": "^(.*\\*\\/)?\\s*((\\})|(\\)+[;,])|(\\][;,])|\\b(else:)|\\b((end(if|for(each)?|while|switch));))" - }, - "folding": { - "markers": { - "start": "^\\s*(#|\/\/)region\\b", - "end": "^\\s*(#|\/\/)endregion\\b" - } - } -} diff --git a/extensions/php/package.json b/extensions/php/package.json deleted file mode 100644 index 0bd740a10ad..00000000000 --- a/extensions/php/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "php", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "contributes": { - "languages": [ - { - "id": "php", - "extensions": [ - ".php", - ".php4", - ".php5", - ".phtml", - ".ctp" - ], - "aliases": [ - "PHP", - "php" - ], - "firstLine": "^#!\\s*/.*\\bphp\\b", - "mimetypes": [ - "application/x-php" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "php", - "scopeName": "source.php", - "path": "./syntaxes/php.tmLanguage.json" - }, - { - "language": "php", - "scopeName": "text.html.php", - "path": "./syntaxes/html.tmLanguage.json", - "embeddedLanguages": { - "text.html": "html", - "source.php": "php", - "source.sql": "sql", - "text.xml": "xml", - "source.js": "javascript", - "source.json": "json", - "source.css": "css" - } - } - ], - "snippets": [ - { - "language": "php", - "path": "./snippets/php.code-snippets" - } - ] - }, - "scripts": { - "update-grammar": "node ./build/update-grammar.js" - } -} diff --git a/extensions/php/package.nls.json b/extensions/php/package.nls.json deleted file mode 100644 index 95897a72dec..00000000000 --- a/extensions/php/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "PHP Language Basics", - "description": "Provides syntax highlighting and bracket matching for PHP files." -} \ No newline at end of file diff --git a/extensions/php/snippets/php.code-snippets b/extensions/php/snippets/php.code-snippets deleted file mode 100644 index b2e9078d91f..00000000000 --- a/extensions/php/snippets/php.code-snippets +++ /dev/null @@ -1,263 +0,0 @@ -{ - "class …": { - "prefix": "class", - "body": [ - "class ${1:ClassName} ${2:extends ${3:AnotherClass}} ${4:implements ${5:Interface}}", - "{", - "\t$0", - "}", - "" - ], - "description": "Class definition" - }, - "PHPDoc class …": { - "prefix": "doc_class", - "body": [ - "/**", - " * ${6:undocumented class}", - " */", - "class ${1:ClassName} ${2:extends ${3:AnotherClass}} ${4:implements ${5:Interface}}", - "{", - "\t$0", - "}", - "" - ], - "description": "Documented Class Declaration" - }, - "function __construct": { - "prefix": "con", - "body": [ - "${1:public} function __construct(${2:${3:Type} $${4:var}${5: = ${6:null}}}) {", - "\t\\$this->${4:var} = $${4:var};$0", - "}" - ] - }, - "PHPDoc property": { - "prefix": "doc_v", - "body": [ - "/** @var ${1:Type} $${2:var} ${3:description} */", - "${4:protected} $${2:var}${5: = ${6:null}};$0" - ], - "description": "Documented Class Variable" - }, - "PHPDoc function …": { - "prefix": "doc_f", - "body": [ - "/**", - " * ${1:undocumented function summary}", - " *", - " * ${2:Undocumented function long description}", - " *", - "${3: * @param ${4:Type} $${5:var} ${6:Description}}", - "${7: * @return ${8:type}}", - "${9: * @throws ${10:conditon}}", - " **/", - "${11:public }function ${12:FunctionName}(${13:${14:${4:Type} }$${5:var}${15: = ${16:null}}})", - "{", - "\t${0:# code...}", - "}" - ], - "description": "Documented function" - }, - "PHPDoc param …": { - "prefix": "param", - "body": [ - "* @param ${1:Type} ${2:var} ${3:Description}$0" - ], - "description": "Paramater documentation" - }, - "function …": { - "prefix": "fun", - "body": [ - "${1:public }function ${2:FunctionName}(${3:${4:${5:Type} }$${6:var}${7: = ${8:null}}})", - "{", - "\t${0:# code...}", - "}" - ], - "description": "Function" - }, - "trait …": { - "prefix": "trait", - "body": [ - "/**", - " * $1", - " */", - "trait ${2:TraitName}", - "{", - "\t$0", - "}", - "" - ], - "description": "Trait" - }, - "define(…, …)": { - "prefix": "def", - "body": [ - "define('$1', ${2:'$3'});", - "$0" - ], - "description": "Definition" - }, - "do … while …": { - "prefix": "do", - "body": [ - "do {", - "\t${0:# code...}", - "} while (${1:$${2:a} <= ${3:10}});" - ], - "description": "Do-While loop" - }, - "while …": { - "prefix": "while", - "body": [ - "while (${1:$${2:a} <= ${3:10}}) {", - "\t${0:# code...}", - "}" - ], - "description": "While-loop" - }, - "if …": { - "prefix": "if", - "body": [ - "if (${1:condition}) {", - "\t${0:# code...}", - "}" - ], - "description": "If block" - }, - "if … else …": { - "prefix": "ifelse", - "body": [ - "if (${1:condition}) {", - "\t${2:# code...}", - "} else {", - "\t${3:# code...}", - "}", - "$0" - ], - "description": "If Else block" - }, - "$… = ( … ) ? … : …": { - "prefix": "if?", - "body": "$${1:retVal} = (${2:condition}) ? ${3:a} : ${4:b} ;", - "description": "Ternary conditional assignment" - }, - "else …": { - "prefix": "else", - "body": [ - "else {", - "\t${0:# code...}", - "}" - ], - "description": "Else block" - }, - "elseif …": { - "prefix": "elseif", - "body": [ - "elseif (${1:condition}) {", - "\t${0:# code...}", - "}" - ], - "description": "Elseif block" - }, - "for …": { - "prefix": "for", - "body": [ - "for ($${1:i}=${2:0}; $${1:i} < $3; $${1:i}++) { ", - "\t${0:# code...}", - "}" - ], - "description": "For-loop" - }, - "foreach …": { - "prefix": "foreach", - "body": [ - "foreach ($${1:variable} as $${2:key} ${3:=> $${4:value}}) {", - "\t${0:# code...}", - "}" - ], - "description": "Foreach loop" - }, - "$… = array (…)": { - "prefix": "array", - "body": "$${1:arrayName} = array('$2' => $3${4:,} $0);", - "description": "Array initializer" - }, - "$… = […]": { - "prefix": "shorray", - "body": "$${1:arrayName} = ['$2' => $3${4:,} $0];", - "description": "Array initializer" - }, - "… => …": { - "prefix": "keyval", - "body": "'$1' => $2${3:,} $0", - "description": "Key-Value initializer" - }, - "switch …": { - "prefix": "switch", - "body": [ - "switch (\\$${1:variable}) {", - "\tcase '${2:value}':", - "\t\t${3:# code...}", - "\t\tbreak;", - "\t$0", - "\tdefault:", - "\t\t${4:# code...}", - "\t\tbreak;", - "}" - ], - "description": "Switch block" - }, - "case …": { - "prefix": "case", - "body": [ - "case '${1:value}':", - "\t${0:# code...}", - "\tbreak;" - ], - "description": "Case Block" - }, - "$this->…": { - "prefix": "this", - "body": "\\$this->$0;", - "description": "$this->..." - }, - "echo $this->…": { - "prefix": "ethis", - "body": "echo \\$this->$0;", - "description": "Echo this" - }, - "Throw Exception": { - "prefix": "throw", - "body": [ - "throw new $1Exception(${2:\"${3:Error Processing Request}\"}${4:, ${5:1}});", - "$0" - ], - "description": "Throw exception" - }, - "Region Start": { - "prefix": "#region", - "body": [ - "#region" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "#endregion" - ], - "description": "Folding Region End" - }, - "Try Catch Block": { - "prefix": "try", - "body": [ - "try {", - "\t${1://code...}", - "} catch (${2:\\Throwable} ${3:\\$th}) {", - "\t${4://throw \\$th;}", - "}" - ], - "description": "Try catch block" - } -} diff --git a/extensions/php/syntaxes/html.tmLanguage.json b/extensions/php/syntaxes/html.tmLanguage.json deleted file mode 100644 index 4bf15294159..00000000000 --- a/extensions/php/syntaxes/html.tmLanguage.json +++ /dev/null @@ -1,189 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-php/blob/master/grammars/html.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-php/commit/b6c5e83016b52311cdc622c2579462861ee91587", - "name": "PHP", - "scopeName": "text.html.php", - "injections": { - "L:source.php string.quoted.single.sql.php source.sql.embedded.php": { - "patterns": [ - { - "match": "(#)(\\\\'|[^'])*(?='|$)", - "name": "comment.line.number-sign.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "(--)(\\\\'|[^'])*(?='|$)", - "name": "comment.line.double-dash.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "\\\\[\\\\'`\"]", - "name": "constant.character.escape.php" - }, - { - "match": "\"(?=((\\\\\")|[^\"'])*('|$))", - "name": "string.quoted.double.unclosed.sql" - } - ] - }, - "L:source.php string.quoted.double.sql.php source.sql.embedded.php": { - "patterns": [ - { - "match": "(#)(\\\\\"|[^\"])*(?=\"|$)", - "name": "comment.line.number-sign.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "(--)(\\\\\"|[^\"])*(?=\"|$)", - "name": "comment.line.double-dash.sql", - "captures": { - "1": { - "name": "punctuation.definition.comment.sql" - } - } - }, - { - "match": "\\\\[\\\\'`\"]", - "name": "constant.character.escape.php" - }, - { - "match": "(')([^'\\\\]*)(')", - "name": "string.quoted.single.sql", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.sql" - }, - "2": { - "patterns": [ - { - "include": "source.php#interpolation_double_quoted" - } - ] - }, - "3": { - "name": "punctuation.definition.string.end.sql" - } - } - }, - { - "match": "(`)([^`\\\\]*)(`)", - "name": "string.quoted.other.backtick.sql", - "captures": { - "1": { - "name": "punctuation.definition.string.begin.sql" - }, - "2": { - "patterns": [ - { - "include": "source.php#interpolation_double_quoted" - } - ] - }, - "3": { - "name": "punctuation.definition.string.end.sql" - } - } - }, - { - "match": "'(?=((\\\\')|[^'\"])*(\"|$))", - "name": "string.quoted.single.unclosed.sql" - }, - { - "include": "source.php#interpolation_double_quoted" - } - ] - }, - "text.html.php - (meta.embedded | meta.tag), L:((text.html.php meta.tag) - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.js - (meta.embedded.block.php | meta.embedded.line.php)), L:(source.css - (meta.embedded.block.php | meta.embedded.line.php))": { - "patterns": [ - { - "include": "#php-tag" - } - ] - } - }, - "patterns": [ - { - "begin": "\\A#!", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "name": "comment.line.shebang.php" - }, - { - "include": "text.html.derivative" - } - ], - "repository": { - "php-tag": { - "patterns": [ - { - "begin": "<\\?(?i:php|=)?(?![^?]*\\?>)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.embedded.block.php", - "contentName": "source.php", - "patterns": [ - { - "include": "source.php" - } - ] - }, - { - "begin": "<\\?(?i:php|=)?", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - } - }, - "end": "(\\?)>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "source.php" - } - }, - "name": "meta.embedded.line.php", - "contentName": "source.php", - "patterns": [ - { - "include": "source.php" - } - ] - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/php/syntaxes/php.tmLanguage.json b/extensions/php/syntaxes/php.tmLanguage.json deleted file mode 100644 index d6341cce2c1..00000000000 --- a/extensions/php/syntaxes/php.tmLanguage.json +++ /dev/null @@ -1,3685 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-php/blob/master/grammars/php.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-php/commit/72739e6341b1b4bf4aa185e928932983baca449e", - "scopeName": "source.php", - "patterns": [ - { - "include": "#attribute" - }, - { - "include": "#comments" - }, - { - "begin": "(?i)^\\s*(interface)\\s+([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(extends)?\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.interface.php" - }, - "2": { - "name": "entity.name.type.interface.php" - }, - "3": { - "name": "storage.modifier.extends.php" - } - }, - "end": "(?i)((?:[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*\\s*,\\s*)*)([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)?\\s*(?:(?={)|$)", - "endCaptures": { - "1": { - "patterns": [ - { - "match": "(?i)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "name": "entity.other.inherited-class.php" - }, - { - "match": ",", - "name": "punctuation.separator.classes.php" - } - ] - }, - "2": { - "name": "entity.other.inherited-class.php" - } - }, - "name": "meta.interface.php", - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "begin": "(?i)^\\s*(trait)\\s+([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)", - "beginCaptures": { - "1": { - "name": "storage.type.trait.php" - }, - "2": { - "name": "entity.name.type.trait.php" - } - }, - "end": "(?={)", - "name": "meta.trait.php", - "patterns": [ - { - "include": "#comments" - } - ] - }, - { - "match": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+([a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)(?=\\s*;)", - "name": "meta.namespace.php", - "captures": { - "1": { - "name": "keyword.other.namespace.php" - }, - "2": { - "name": "entity.name.type.namespace.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - } - } - }, - { - "begin": "(?i)(?:^|(?<=<\\?php))\\s*(namespace)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.namespace.php" - } - }, - "end": "(?<=})|(?=\\?>)", - "name": "meta.namespace.php", - "patterns": [ - { - "include": "#comments" - }, - { - "match": "(?i)[a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+", - "name": "entity.name.type.namespace.php", - "captures": { - "0": { - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - } - } - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.namespace.begin.bracket.curly.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.namespace.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "[^\\s]+", - "name": "invalid.illegal.identifier.php" - } - ] - }, - { - "match": "\\s+(?=use\\b)" - }, - { - "begin": "(?i)\\buse\\b", - "beginCaptures": { - "0": { - "name": "keyword.other.use.php" - } - }, - "end": "(?<=})|(?=;)|(?=\\?>)", - "name": "meta.use.php", - "patterns": [ - { - "match": "\\b(const|function)\\b", - "name": "storage.type.${1:/downcase}.php" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.use.begin.bracket.curly.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.use.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "#scope-resolution" - }, - { - "match": "(?xi)\n\\b(as)\n\\s+(final|abstract|public|private|protected|static)\n\\s+([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)", - "captures": { - "1": { - "name": "keyword.other.use-as.php" - }, - "2": { - "name": "storage.modifier.php" - }, - "3": { - "name": "entity.other.alias.php" - } - } - }, - { - "match": "(?xi)\n\\b(as)\n\\s+([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)", - "captures": { - "1": { - "name": "keyword.other.use-as.php" - }, - "2": { - "patterns": [ - { - "match": "^(?:final|abstract|public|private|protected|static)$", - "name": "storage.modifier.php" - }, - { - "match": ".+", - "name": "entity.other.alias.php" - } - ] - } - } - }, - { - "match": "(?i)\\b(insteadof)\\s+([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)", - "captures": { - "1": { - "name": "keyword.other.use-insteadof.php" - }, - "2": { - "name": "support.class.php" - } - } - }, - { - "match": ";", - "name": "punctuation.terminator.expression.php" - }, - { - "include": "#use-inner" - } - ] - }, - { - "include": "#use-inner" - } - ] - }, - { - "begin": "(?ix)\n(?:\n \\b(?:(abstract|final)\\s+)?(class)\\s+([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\n |\\b(new)\\b\\s*(\\#\\[.*\\])?\\s*\\b(class)\\b # anonymous class\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.${1:/downcase}.php" - }, - "2": { - "name": "storage.type.class.php" - }, - "3": { - "name": "entity.name.type.class.php" - }, - "4": { - "name": "keyword.other.new.php" - }, - "5": { - "patterns": [ - { - "include": "#attribute" - } - ] - }, - "6": { - "name": "storage.type.class.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.class.end.bracket.curly.php" - } - }, - "name": "meta.class.php", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)(extends)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.extends.php" - } - }, - "contentName": "meta.other.inherited-class.php", - "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*\\\\)", - "end": "(?i)([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "endCaptures": { - "1": { - "name": "entity.other.inherited-class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "name": "entity.other.inherited-class.php" - } - ] - }, - { - "begin": "(?i)(implements)\\s+", - "beginCaptures": { - "1": { - "name": "storage.modifier.implements.php" - } - }, - "end": "(?i)(?=[;{])", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)(?=[a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)", - "contentName": "meta.other.inherited-class.php", - "end": "(?i)(?:\\s*(?:,|(?=[^a-z0-9_\\x{7f}-\\x{7fffffff}\\\\\\s]))\\s*)", - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*\\\\)", - "end": "(?i)([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)?(?=[^a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "endCaptures": { - "1": { - "name": "entity.other.inherited-class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "name": "entity.other.inherited-class.php" - } - ] - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.class.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "contentName": "meta.class.body.php", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "include": "#match_statement" - }, - { - "include": "#switch_statement" - }, - { - "match": "\\s*\\b(yield\\s+from)\\b", - "captures": { - "1": { - "name": "keyword.control.yield-from.php" - } - } - }, - { - "match": "(?x)\n\\s* # FIXME: Removing this causes specs to fail. Investigate.\n\\b(\n break|case|continue|declare|default|die|do|\n else(if)?|end(declare|for(each)?|if|switch|while)|exit|\n for(each)?|if|return|switch|use|while|yield\n)\\b", - "captures": { - "1": { - "name": "keyword.control.${1:/downcase}.php" - } - } - }, - { - "begin": "(?i)\\b((?:require|include)(?:_once)?)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.control.import.include.php" - } - }, - "end": "(?=\\s|;|$|\\?>)", - "name": "meta.include.php", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\b(catch)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.control.exception.catch.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "name": "meta.catch.php", - "patterns": [ - { - "match": "(?xi)\n([a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)*) # union or single exception class\n\\s*\n((\\$+)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)? # Variable", - "captures": { - "1": { - "patterns": [ - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - }, - { - "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{7fffffff}])", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{7fffffff}] [a-z0-9_\\x{7f}-\\x{7fffffff}]* )\n(?![a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.class.exception.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - } - } - ] - }, - { - "match": "\\b(catch|try|throw|exception|finally)\\b", - "name": "keyword.control.exception.php" - }, - { - "begin": "(?i)\\b(function)\\s*(?=&?\\s*\\()", - "beginCaptures": { - "1": { - "name": "storage.type.function.php" - } - }, - "end": "(?=\\s*{)", - "name": "meta.function.closure.php", - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(&)?\\s*(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.reference.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "begin": "(?i)(use)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.function.use.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "name": "meta.function.closure.use.php", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((?:(&)\\s*)?(\\$+)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(?=,|\\))" - } - ] - }, - { - "match": "(?xi)\n(:)\\s*\n(\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ | # nullable type\n [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)+ # union type\n)\n(?=\\s*(?:{|/[/*]|\\#|$))", - "captures": { - "1": { - "name": "keyword.operator.return-value.php" - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - } - } - } - ] - }, - { - "begin": "(?i)\\b(fn)\\s*(?=&?\\s*\\()", - "beginCaptures": { - "1": { - "name": "storage.type.function.php" - } - }, - "end": "=>", - "endCaptures": { - "0": { - "name": "punctuation.definition.arrow.php" - } - }, - "name": "meta.function.closure.php", - "patterns": [ - { - "begin": "(?:(&)\\s*)?(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.reference.php" - }, - "2": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "match": "(?xi)\n(:)\\s*\n(\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ | # nullable type\n [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)+ # union type\n)\n(?=\\s*(?:=>|/[/*]|\\#|$))", - "captures": { - "1": { - "name": "keyword.operator.return-value.php" - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - } - } - } - ] - }, - { - "begin": "(?x)\n((?:(?:final|abstract|public|private|protected)\\s+)*)\n(function)\\s+(__construct)\n\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract|public|private|protected", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.function.php" - }, - "3": { - "name": "support.function.constructor.php" - }, - "4": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "(?xi)\n(\\)) \\s* ( : \\s*\n (?:\\?\\s*)? (?!\\s) [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\\\s\\|]+ (?<!\\s)\n)?\n(?=\\s*(?:{|/[/*]|\\#|$|;))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - }, - "2": { - "name": "invalid.illegal.return-type.php" - } - }, - "name": "meta.function.php", - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "begin": "(?xi)\n(public|private|protected) \\s+\n(?: (\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ | # nullable type\n [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)+ # union type\n) \\s+ )?\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Variable name with possible reference", - "beginCaptures": { - "1": { - "name": "storage.modifier.php" - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "3": { - "name": "variable.other.php" - }, - "4": { - "name": "storage.modifier.reference.php" - }, - "5": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "name": "meta.function.parameter.promoted-property.php", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - { - "include": "#function-parameters" - } - ] - }, - { - "begin": "(?x)\n((?:(?:final|abstract|public|private|protected|static)\\s+)*)\n(function)\\s+\n(?i:\n (__(?:call|construct|debugInfo|destruct|get|set|isset|unset|toString|\n clone|set_state|sleep|wakeup|autoload|invoke|callStatic|serialize|unserialize))\n |(?:(&)?\\s*([a-zA-Z_\\x{7f}-\\x{7fffffff}][a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]*))\n)\n\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "match": "final|abstract|public|private|protected|static", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "name": "storage.type.function.php" - }, - "3": { - "name": "support.function.magic.php" - }, - "4": { - "name": "storage.modifier.reference.php" - }, - "5": { - "name": "entity.name.function.php" - }, - "6": { - "name": "punctuation.definition.parameters.begin.bracket.round.php" - } - }, - "contentName": "meta.function.parameters.php", - "end": "(?xi)\n(\\)) (?: \\s* (:) \\s* (\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ | # nullable type\n [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)+ # union type\n) )?\n(?=\\s*(?:{|/[/*]|\\#|$|;))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.bracket.round.php" - }, - "2": { - "name": "keyword.operator.return-value.php" - }, - "3": { - "patterns": [ - { - "match": "\\b(static)\\b", - "name": "storage.type.php" - }, - { - "include": "#php-types" - } - ] - } - }, - "name": "meta.function.php", - "patterns": [ - { - "include": "#function-parameters" - } - ] - }, - { - "match": "(?xi)\n((?:(?:public|private|protected|static)(?:\\s+|(?=\\?)))+) # At least one modifier\n(\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ | # nullable type\n [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)+ # union type\n)?\n\\s+ ((\\$)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Variable name", - "captures": { - "1": { - "patterns": [ - { - "match": "public|private|protected|static", - "name": "storage.modifier.php" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "3": { - "name": "variable.other.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - } - }, - { - "include": "#invoke-call" - }, - { - "include": "#scope-resolution" - }, - { - "include": "#variables" - }, - { - "include": "#strings" - }, - { - "captures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - }, - "3": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "match": "(array)(\\()(\\))", - "name": "meta.array.empty.php" - }, - { - "begin": "(array)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "name": "meta.array.php", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "(?i)(\\()\\s*(array|real|double|float|int(?:eger)?|bool(?:ean)?|string|object|binary|unset)\\s*(\\))", - "captures": { - "1": { - "name": "punctuation.definition.storage-type.begin.bracket.round.php" - }, - "2": { - "name": "storage.type.php" - }, - "3": { - "name": "punctuation.definition.storage-type.end.bracket.round.php" - } - } - }, - { - "match": "(?i)\\b(array|real|double|float|int(eger)?|bool(ean)?|string|class|var|function|interface|trait|parent|self|object|mixed)\\b", - "name": "storage.type.php" - }, - { - "match": "(?i)\\b(global|abstract|const|extends|implements|final|private|protected|public|static)\\b", - "name": "storage.modifier.php" - }, - { - "include": "#object" - }, - { - "match": ";", - "name": "punctuation.terminator.expression.php" - }, - { - "match": ":", - "name": "punctuation.terminator.statement.php" - }, - { - "include": "#heredoc" - }, - { - "include": "#numbers" - }, - { - "match": "(?i)\\bclone\\b", - "name": "keyword.other.clone.php" - }, - { - "match": "\\.\\.\\.", - "name": "keyword.operator.spread.php" - }, - { - "match": "\\.=?", - "name": "keyword.operator.string.php" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "captures": { - "1": { - "name": "keyword.operator.assignment.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "storage.modifier.reference.php" - } - }, - "match": "(?i)(\\=)(&)|(&)(?=[$a-z_])" - }, - { - "match": "@", - "name": "keyword.operator.error-control.php" - }, - { - "match": "===|==|!==|!=|<>", - "name": "keyword.operator.comparison.php" - }, - { - "match": "=|\\+=|\\-=|\\*\\*?=|/=|%=|&=|\\|=|\\^=|<<=|>>=|\\?\\?=", - "name": "keyword.operator.assignment.php" - }, - { - "match": "<=>|<=|>=|<|>", - "name": "keyword.operator.comparison.php" - }, - { - "match": "\\-\\-|\\+\\+", - "name": "keyword.operator.increment-decrement.php" - }, - { - "match": "\\-|\\+|\\*\\*?|/|%", - "name": "keyword.operator.arithmetic.php" - }, - { - "match": "(?i)(!|&&|\\|\\|)|\\b(and|or|xor|as)\\b", - "name": "keyword.operator.logical.php" - }, - { - "include": "#function-call" - }, - { - "match": "<<|>>|~|\\^|&|\\|", - "name": "keyword.operator.bitwise.php" - }, - { - "begin": "(?i)\\b(instanceof)\\s+(?=[\\\\$a-z_])", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.php" - } - }, - "end": "(?i)(?=[^\\\\$a-z0-9_\\x{7f}-\\x{7fffffff}])", - "patterns": [ - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - { - "include": "#instantiation" - }, - { - "captures": { - "1": { - "name": "keyword.control.goto.php" - }, - "2": { - "name": "support.other.php" - } - }, - "match": "(?i)(goto)\\s+([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)" - }, - { - "captures": { - "1": { - "name": "entity.name.goto-label.php" - } - }, - "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*:(?!:)" - }, - { - "include": "#string-backtick" - }, - { - "include": "#ternary_shorthand" - }, - { - "include": "#null_coalescing" - }, - { - "include": "#ternary_expression" - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.curly.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.curly.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.php" - } - }, - "end": "\\]|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#constants" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - } - ], - "repository": { - "attribute-name": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*\\\\)", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{7fffffff}] [a-z0-9_\\x{7f}-\\x{7fffffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.attribute.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "match": "(?xi)\n(\\\\)?\\b(Attribute)\\b", - "name": "support.attribute.builtin.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{7fffffff}])", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{7fffffff}] [a-z0-9_\\x{7f}-\\x{7fffffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.attribute.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "attribute": { - "begin": "\\#\\[", - "end": "\\]", - "name": "meta.attribute.php", - "patterns": [ - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "begin": "([a-zA-Z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#attribute-name" - } - ] - }, - "2": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "include": "#attribute-name" - } - ] - }, - "class-builtin": { - "patterns": [ - { - "match": "(?xi)\n(\\\\)?\\b\n(Attribute|(APC|Append)Iterator|Array(Access|Iterator|Object)\n|Bad(Function|Method)CallException\n|(Caching|CallbackFilter)Iterator|Collator|Collectable|Cond|Countable|CURLFile\n|Date(Interval|Period|Time(Interface|Immutable|Zone)?)?|Directory(Iterator)?|DomainException\n|DOM(Attr|CdataSection|CharacterData|Comment|Document(Fragment)?|Element|EntityReference\n |Implementation|NamedNodeMap|Node(list)?|ProcessingInstruction|Text|XPath)\n|(Error)?Exception|EmptyIterator\n|finfo\n|Ev(Check|Child|Embed|Fork|Idle|Io|Loop|Periodic|Prepare|Signal|Stat|Timer|Watcher)?\n|Event(Base|Buffer(Event)?|SslContext|Http(Request|Connection)?|Config|DnsBase|Util|Listener)?\n|FANNConnection|(Filter|Filesystem)Iterator\n|Gender\\\\Gender|GlobIterator|Gmagick(Draw|Pixel)?\n|Haru(Annotation|Destination|Doc|Encoder|Font|Image|Outline|Page)\n|Http((Inflate|Deflate)?Stream|Message|Request(Pool)?|Response|QueryString)\n|HRTime\\\\(PerformanceCounter|StopWatch)\n|Intl(Calendar|((CodePoint|RuleBased)?Break|Parts)?Iterator|DateFormatter|TimeZone)\n|Imagick(Draw|Pixel(Iterator)?)?\n|InfiniteIterator|InvalidArgumentException|Iterator(Aggregate|Iterator)?\n|JsonSerializable\n|KTaglib_(MPEG_(File|AudioProperties)|Tag|ID3v2_(Tag|(AttachedPicture)?Frame))\n|Lapack|(Length|Locale|Logic)Exception|LimitIterator|Lua(Closure)?\n|Mongo(BinData|Client|Code|Collection|CommandCursor|Cursor(Exception)?|Date|DB(Ref)?|DeleteBatch\n |Grid(FS(Cursor|File)?)|Id|InsertBatch|Int(32|64)|Log|Pool|Regex|ResultException|Timestamp\n |UpdateBatch|Write(Batch|ConcernException))?\n|Memcache(d)?|MessageFormatter|MultipleIterator|Mutex\n|mysqli(_(driver|stmt|warning|result))?\n|MysqlndUh(Connection|PreparedStatement)\n|NoRewindIterator|Normalizer|NumberFormatter\n|OCI-(Collection|Lob)|OuterIterator|(OutOf(Bounds|Range)|Overflow)Exception\n|ParentIterator|PDO(Statement)?|Phar(Data|FileInfo)?|php_user_filter|Pool\n|QuickHash(Int(Set|StringHash)|StringIntHash)\n|Recursive(Array|Caching|Directory|Fallback|Filter|Iterator|Regex|Tree)?Iterator\n|Reflection(Class|Function(Abstract)?|Method|Object|Parameter|Property|(Zend)?Extension)?\n|RangeException|Reflector|RegexIterator|ResourceBundle|RuntimeException|RRD(Creator|Graph|Updater)\n|SAM(Connection|Message)|SCA(_(SoapProxy|LocalProxy))?\n|SDO_(DAS_(ChangeSummary|Data(Factory|Object)|Relational|Setting|XML(_Document)?)\n |Data(Factory|Object)|Exception|List|Model_(Property|ReflectionDataObject|Type)|Sequence)\n|SeekableIterator|Serializable|SessionHandler(Interface)?|SimpleXML(Iterator|Element)|SNMP\n|Soap(Client|Fault|Header|Param|Server|Var)\n|SphinxClient|Spoofchecker\n|Spl(DoublyLinkedList|Enum|File(Info|Object)|FixedArray|(Max|Min)?Heap|Observer|ObjectStorage\n |(Priority)?Queue|Stack|Subject|Type|TempFileObject)\n|SQLite(3(Result|Stmt)?|Database|Result|Unbuffered)\n|stdClass|streamWrapper|SVM(Model)?|Swish(Result(s)?|Search)?|Sync(Event|Mutex|ReaderWriter|Semaphore)\n|Thread(ed)?|tidy(Node)?|TokyoTyrant(Table|Iterator|Query)?|Transliterator|Traversable\n|UConverter|(Underflow|UnexpectedValue)Exception\n|V8Js(Exception)?|Varnish(Admin|Log|Stat)\n|Worker|Weak(Map|Ref)\n|XML(Diff\\\\(Base|DOM|File|Memory)|Reader|Writer)|XsltProcessor\n|Yaf_(Route_(Interface|Map|Regex|Rewrite|Simple|Supervar)\n |Action_Abstract|Application|Config_(Simple|Ini|Abstract)|Controller_Abstract\n |Dispatcher|Exception|Loader|Plugin_Abstract|Registry|Request_(Abstract|Simple|Http)\n |Response_Abstract|Router|Session|View_(Simple|Interface))\n|Yar_(Client(_Exception)?|Concurrent_Client|Server(_Exception)?)\n|ZipArchive|ZMQ(Context|Device|Poll|Socket)?)\n\\b", - "name": "support.class.builtin.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - } - ] - }, - "class-name": { - "patterns": [ - { - "begin": "(?i)(?=\\\\?[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*\\\\)", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{7fffffff}] [a-z0-9_\\x{7f}-\\x{7fffffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - }, - { - "include": "#class-builtin" - }, - { - "begin": "(?i)(?=[\\\\a-z_\\x{7f}-\\x{7fffffff}])", - "end": "(?xi)\n( [a-z_\\x{7f}-\\x{7fffffff}] [a-z0-9_\\x{7f}-\\x{7fffffff}]* )?\n(?![a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "endCaptures": { - "1": { - "name": "support.class.php" - } - }, - "patterns": [ - { - "include": "#namespace" - } - ] - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "/\\*\\*(?=\\s)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.block.documentation.phpdoc.php", - "patterns": [ - { - "include": "#php_doc" - } - ] - }, - { - "begin": "/\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\*/", - "name": "comment.block.php" - }, - { - "begin": "(^\\s+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.php" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\n|(?=\\?>)", - "name": "comment.line.double-slash.php" - } - ] - }, - { - "begin": "(^\\s+)?(?=#)(?!#\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.php" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "\\n|(?=\\?>)", - "name": "comment.line.number-sign.php" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "match": "(?i)\\b(TRUE|FALSE|NULL|__(FILE|DIR|FUNCTION|CLASS|METHOD|LINE|NAMESPACE)__|ON|OFF|YES|NO|NL|BR|TAB)\\b", - "name": "constant.language.php" - }, - { - "match": "(?x)\n(\\\\)?\\b\n(DEFAULT_INCLUDE_PATH\n|EAR_(INSTALL|EXTENSION)_DIR\n|E_(ALL|COMPILE_(ERROR|WARNING)|CORE_(ERROR|WARNING)|DEPRECATED|ERROR|NOTICE\n |PARSE|RECOVERABLE_ERROR|STRICT|USER_(DEPRECATED|ERROR|NOTICE|WARNING)|WARNING)\n|PHP_(ROUND_HALF_(DOWN|EVEN|ODD|UP)|(MAJOR|MINOR|RELEASE)_VERSION|MAXPATHLEN\n |BINDIR|SHLIB_SUFFIX|SYSCONFDIR|SAPI|CONFIG_FILE_(PATH|SCAN_DIR)\n |INT_(MAX|SIZE)|ZTS|OS|OUTPUT_HANDLER_(START|CONT|END)|DEBUG|DATADIR\n |URL_(SCHEME|HOST|USER|PORT|PASS|PATH|QUERY|FRAGMENT)|PREFIX\n |EXTRA_VERSION|EXTENSION_DIR|EOL|VERSION(_ID)?\n |WINDOWS_(NT_(SERVER|DOMAIN_CONTROLLER|WORKSTATION)\n |VERSION_(MAJOR|MINOR)|BUILD|SUITEMASK|SP_(MAJOR|MINOR)\n |PRODUCTTYPE|PLATFORM)\n |LIBDIR|LOCALSTATEDIR)\n|STD(ERR|IN|OUT)|ZEND_(DEBUG_BUILD|THREAD_SAFE))\n\\b", - "name": "support.constant.core.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(__COMPILER_HALT_OFFSET__|AB(MON_(1|2|3|4|5|6|7|8|9|10|11|12)|DAY[1-7])\n|AM_STR|ASSERT_(ACTIVE|BAIL|CALLBACK_QUIET_EVAL|WARNING)|ALT_DIGITS\n|CASE_(UPPER|LOWER)|CHAR_MAX|CONNECTION_(ABORTED|NORMAL|TIMEOUT)|CODESET|COUNT_(NORMAL|RECURSIVE)\n|CREDITS_(ALL|DOCS|FULLPAGE|GENERAL|GROUP|MODULES|QA|SAPI)\n|CRYPT_(BLOWFISH|EXT_DES|MD5|SHA(256|512)|SALT_LENGTH|STD_DES)|CURRENCY_SYMBOL\n|D_(T_)?FMT|DATE_(ATOM|COOKIE|ISO8601|RFC(822|850|1036|1123|2822|3339)|RSS|W3C)\n|DAY_[1-7]|DECIMAL_POINT|DIRECTORY_SEPARATOR\n|ENT_(COMPAT|IGNORE|(NO)?QUOTES)|EXTR_(IF_EXISTS|OVERWRITE|PREFIX_(ALL|IF_EXISTS|INVALID|SAME)|REFS|SKIP)\n|ERA(_(D_(T_)?FMT)|T_FMT|YEAR)?|FRAC_DIGITS|GROUPING|HASH_HMAC|HTML_(ENTITIES|SPECIALCHARS)\n|INF|INFO_(ALL|CREDITS|CONFIGURATION|ENVIRONMENT|GENERAL|LICENSEMODULES|VARIABLES)\n|INI_(ALL|CANNER_(NORMAL|RAW)|PERDIR|SYSTEM|USER)|INT_(CURR_SYMBOL|FRAC_DIGITS)\n|LC_(ALL|COLLATE|CTYPE|MESSAGES|MONETARY|NUMERIC|TIME)|LOCK_(EX|NB|SH|UN)\n|LOG_(ALERT|AUTH(PRIV)?|CRIT|CRON|CONS|DAEMON|DEBUG|EMERG|ERR|INFO|LOCAL[1-7]|LPR|KERN|MAIL\n |NEWS|NODELAY|NOTICE|NOWAIT|ODELAY|PID|PERROR|WARNING|SYSLOG|UCP|USER)\n|M_(1_PI|SQRT(1_2|2|3|PI)|2_(SQRT)?PI|PI(_(2|4))?|E(ULER)?|LN(10|2|PI)|LOG(10|2)E)\n|MON_(1|2|3|4|5|6|7|8|9|10|11|12|DECIMAL_POINT|GROUPING|THOUSANDS_SEP)\n|N_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|NAN|NEGATIVE_SIGN|NO(EXPR|STR)\n|P_(CS_PRECEDES|SEP_BY_SPACE|SIGN_POSN)|PM_STR|POSITIVE_SIGN\n|PATH(_SEPARATOR|INFO_(EXTENSION|(BASE|DIR|FILE)NAME))|RADIXCHAR\n|SEEK_(CUR|END|SET)|SORT_(ASC|DESC|LOCALE_STRING|REGULAR|STRING)|STR_PAD_(BOTH|LEFT|RIGHT)\n|T_FMT(_AMPM)?|THOUSEP|THOUSANDS_SEP\n|UPLOAD_ERR_(CANT_WRITE|EXTENSION|(FORM|INI)_SIZE|NO_(FILE|TMP_DIR)|OK|PARTIAL)\n|YES(EXPR|STR))\n\\b", - "name": "support.constant.std.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(GLOB_(MARK|BRACE|NO(SORT|CHECK|ESCAPE)|ONLYDIR|ERR|AVAILABLE_FLAGS)\n|XML_(SAX_IMPL|(DTD|DOCUMENT(_(FRAG|TYPE))?|HTML_DOCUMENT|NOTATION|NAMESPACE_DECL|PI|COMMENT|DATA_SECTION|TEXT)_NODE\n |OPTION_(SKIP_(TAGSTART|WHITE)|CASE_FOLDING|TARGET_ENCODING)\n |ERROR_((BAD_CHAR|(ATTRIBUTE_EXTERNAL|BINARY|PARAM|RECURSIVE)_ENTITY)_REF|MISPLACED_XML_PI|SYNTAX|NONE\n |NO_(MEMORY|ELEMENTS)|TAG_MISMATCH|INCORRECT_ENCODING|INVALID_TOKEN|DUPLICATE_ATTRIBUTE\n |UNCLOSED_(CDATA_SECTION|TOKEN)|UNDEFINED_ENTITY|UNKNOWN_ENCODING|JUNK_AFTER_DOC_ELEMENT\n |PARTIAL_CHAR|EXTERNAL_ENTITY_HANDLING|ASYNC_ENTITY)\n |ENTITY_(((REF|DECL)_)?NODE)|ELEMENT(_DECL)?_NODE|LOCAL_NAMESPACE|ATTRIBUTE_(NMTOKEN(S)?|NOTATION|NODE)\n |CDATA|ID(REF(S)?)?|DECL_NODE|ENTITY|ENUMERATION)\n|MHASH_(RIPEMD(128|160|256|320)|GOST|MD(2|4|5)|SHA(1|224|256|384|512)|SNEFRU256|HAVAL(128|160|192|224|256)\n |CRC23(B)?|TIGER(128|160)?|WHIRLPOOL|ADLER32)\n|MYSQL_(BOTH|NUM|CLIENT_(SSL|COMPRESS|IGNORE_SPACE|INTERACTIVE|ASSOC))\n|MYSQLI_(REPORT_(STRICT|INDEX|OFF|ERROR|ALL)|REFRESH_(GRANT|MASTER|BACKUP_LOG|STATUS|SLAVE|HOSTS|THREADS|TABLES|LOG)\n |READ_DEFAULT_(FILE|GROUP)|(GROUP|MULTIPLE_KEY|BINARY|BLOB)_FLAG|BOTH\n |STMT_ATTR_(CURSOR_TYPE|UPDATE_MAX_LENGTH|PREFETCH_ROWS)|STORE_RESULT\n |SERVER_QUERY_(NO_((GOOD_)?INDEX_USED)|WAS_SLOW)|SET_(CHARSET_NAME|FLAG)\n |NO_(DEFAULT_VALUE_FLAG|DATA)|NOT_NULL_FLAG|NUM(_FLAG)?\n |CURSOR_TYPE_(READ_ONLY|SCROLLABLE|NO_CURSOR|FOR_UPDATE)\n |CLIENT_(SSL|NO_SCHEMA|COMPRESS|IGNORE_SPACE|INTERACTIVE|FOUND_ROWS)\n |TYPE_(GEOMETRY|((MEDIUM|LONG|TINY)_)?BLOB|BIT|SHORT|STRING|SET|YEAR|NULL|NEWDECIMAL|NEWDATE|CHAR\n |TIME(STAMP)?|TINY|INT24|INTERVAL|DOUBLE|DECIMAL|DATE(TIME)?|ENUM|VAR_STRING|FLOAT|LONG(LONG)?)\n |TIME_STAMP_FLAG|INIT_COMMAND|ZEROFILL_FLAG|ON_UPDATE_NOW_FLAG\n |OPT_(NET_((CMD|READ)_BUFFER_SIZE)|CONNECT_TIMEOUT|INT_AND_FLOAT_NATIVE|LOCAL_INFILE)\n |DEBUG_TRACE_ENABLED|DATA_TRUNCATED|USE_RESULT|(ENUM|(PART|PRI|UNIQUE)_KEY|UNSIGNED)_FLAG\n |ASSOC|ASYNC|AUTO_INCREMENT_FLAG)\n|MCRYPT_(RC(2|6)|RIJNDAEL_(128|192|256)|RAND|GOST|XTEA|MODE_(STREAM|NOFB|CBC|CFB|OFB|ECB)|MARS\n |BLOWFISH(_COMPAT)?|SERPENT|SKIPJACK|SAFER(64|128|PLUS)|CRYPT|CAST_(128|256)|TRIPLEDES|THREEWAY\n |TWOFISH|IDEA|(3)?DES|DECRYPT|DEV_(U)?RANDOM|PANAMA|ENCRYPT|ENIGNA|WAKE|LOKI97|ARCFOUR(_IV)?)\n|STREAM_(REPORT_ERRORS|MUST_SEEK|MKDIR_RECURSIVE|BUFFER_(NONE|FULL|LINE)|SHUT_(RD)?WR\n |SOCK_(RDM|RAW|STREAM|SEQPACKET|DGRAM)|SERVER_(BIND|LISTEN)\n |NOTIFY_(REDIRECTED|RESOLVE|MIME_TYPE_IS|SEVERITY_(INFO|ERR|WARN)|COMPLETED|CONNECT|PROGRESS\n |FILE_SIZE_IS|FAILURE|AUTH_(REQUIRED|RESULT))\n |CRYPTO_METHOD_((SSLv2(3)?|SSLv3|TLS)_(CLIENT|SERVER))|CLIENT_((ASYNC_)?CONNECT|PERSISTENT)\n |CAST_(AS_STREAM|FOR_SELECT)|(IGNORE|IS)_URL|IPPROTO_(RAW|TCP|ICMP|IP|UDP)|OOB\n |OPTION_(READ_(BUFFER|TIMEOUT)|BLOCKING|WRITE_BUFFER)|URL_STAT_(LINK|QUIET)|USE_PATH\n |PEEK|PF_(INET(6)?|UNIX)|ENFORCE_SAFE_MODE|FILTER_(ALL|READ|WRITE))\n|SUNFUNCS_RET_(DOUBLE|STRING|TIMESTAMP)\n|SQLITE_(READONLY|ROW|MISMATCH|MISUSE|BOTH|BUSY|SCHEMA|NOMEM|NOTFOUND|NOTADB|NOLFS|NUM|CORRUPT\n |CONSTRAINT|CANTOPEN|TOOBIG|INTERRUPT|INTERNAL|IOERR|OK|DONE|PROTOCOL|PERM|ERROR|EMPTY\n |FORMAT|FULL|LOCKED|ABORT|ASSOC|AUTH)\n|SQLITE3_(BOTH|BLOB|NUM|NULL|TEXT|INTEGER|OPEN_(READ(ONLY|WRITE)|CREATE)|FLOAT_ASSOC)\n|CURL(M_(BAD_((EASY)?HANDLE)|CALL_MULTI_PERFORM|INTERNAL_ERROR|OUT_OF_MEMORY|OK)\n |MSG_DONE|SSH_AUTH_(HOST|NONE|DEFAULT|PUBLICKEY|PASSWORD|KEYBOARD)\n |CLOSEPOLICY_(SLOWEST|CALLBACK|OLDEST|LEAST_(RECENTLY_USED|TRAFFIC)\n |INFO_(REDIRECT_(COUNT|TIME)|REQUEST_SIZE|SSL_VERIFYRESULT|STARTTRANSFER_TIME\n |(SIZE|SPEED)_(DOWNLOAD|UPLOAD)|HTTP_CODE|HEADER_(OUT|SIZE)|NAMELOOKUP_TIME\n |CONNECT_TIME|CONTENT_(TYPE|LENGTH_(DOWNLOAD|UPLOAD))|CERTINFO|TOTAL_TIME\n |PRIVATE|PRETRANSFER_TIME|EFFECTIVE_URL|FILETIME)\n |OPT_(RESUME_FROM|RETURNTRANSFER|REDIR_PROTOCOLS|REFERER|READ(DATA|FUNCTION)|RANGE|RANDOM_FILE\n |MAX(CONNECTS|REDIRS)|BINARYTRANSFER|BUFFERSIZE\n |SSH_(HOST_PUBLIC_KEY_MD5|(PRIVATE|PUBLIC)_KEYFILE)|AUTH_TYPES)\n |SSL(CERT(TYPE|PASSWD)?|ENGINE(_DEFAULT)?|VERSION|KEY(TYPE|PASSWD)?)\n |SSL_(CIPHER_LIST|VERIFY(HOST|PEER))\n |STDERR|HTTP(GET|HEADER|200ALIASES|_VERSION|PROXYTUNNEL|AUTH)\n |HEADER(FUNCTION)?|NO(BODY|SIGNAL|PROGRESS)|NETRC|CRLF|CONNECTTIMEOUT(_MS)?\n |COOKIE(SESSION|JAR|FILE)?|CUSTOMREQUEST|CERTINFO|CLOSEPOLICY|CA(INFO|PATH)|TRANSFERTEXT\n |TCP_NODELAY|TIME(CONDITION|OUT(_MS)?|VALUE)|INTERFACE|INFILE(SIZE)?|IPRESOLVE\n |DNS_(CACHE_TIMEOUT|USE_GLOBAL_CACHE)|URL|USER(AGENT|PWD)|UNRESTRICTED_AUTH|UPLOAD\n |PRIVATE|PROGRESSFUNCTION|PROXY(TYPE|USERPWD|PORT|AUTH)?|PROTOCOLS|PORT\n |POST(REDIR|QUOTE|FIELDS)?|PUT|EGDSOCKET|ENCODING|VERBOSE|KRB4LEVEL|KEYPASSWD|QUOTE|FRESH_CONNECT\n |FTP(APPEND|LISTONLY|PORT|SSLAUTH)\n |FTP_(SSL|SKIP_PASV_IP|CREATE_MISSING_DIRS|USE_EP(RT|SV)|FILEMETHOD)\n |FILE(TIME)?|FORBID_REUSE|FOLLOWLOCATION|FAILONERROR|WRITE(FUNCTION|HEADER)|LOW_SPEED_(LIMIT|TIME)\n |AUTOREFERER)\n |PROXY_(HTTP|SOCKS(4|5))|PROTO_(SCP|SFTP|HTTP(S)?|TELNET|TFTP|DICT|FTP(S)?|FILE|LDAP(S)?|ALL)\n |E_((RECV|READ)_ERROR|GOT_NOTHING|MALFORMAT_USER\n |BAD_(CONTENT_ENCODING|CALLING_ORDER|PASSWORD_ENTERED|FUNCTION_ARGUMENT)\n |SSH|SSL_(CIPHER|CONNECT_ERROR|CERTPROBLEM|CACERT|PEER_CERTIFICATE|ENGINE_(NOTFOUND|SETFAILED))\n |SHARE_IN_USE|SEND_ERROR|HTTP_(RANGE_ERROR|NOT_FOUND|PORT_FAILED|POST_ERROR)\n |COULDNT_(RESOLVE_(HOST|PROXY)|CONNECT)|TOO_MANY_REDIRECTS|TELNET_OPTION_SYNTAX|OBSOLETE\n |OUT_OF_MEMORY|OPERATION|TIMEOUTED|OK|URL_MALFORMAT(_USER)?|UNSUPPORTED_PROTOCOL\n |UNKNOWN_TELNET_OPTION|PARTIAL_FILE\n |FTP_(BAD_DOWNLOAD_RESUME|SSL_FAILED|COULDNT_(RETR_FILE|GET_SIZE|STOR_FILE|SET_(BINARY|ASCII)|USE_REST)\n |CANT_(GET_HOST|RECONNECT)|USER_PASSWORD_INCORRECT|PORT_FAILED|QUOTE_ERROR|WRITE_ERROR\n |WEIRD_((PASS|PASV|SERVER|USER)_REPLY|227_FORMAT)|ACCESS_DENIED)\n |FILESIZE_EXCEEDED|FILE_COULDNT_READ_FILE|FUNCTION_NOT_FOUND|FAILED_INIT|WRITE_ERROR|LIBRARY_NOT_FOUND\n |LDAP_(SEARCH_FAILED|CANNOT_BIND|INVALID_URL)|ABORTED_BY_CALLBACK)\n |VERSION_NOW\n |FTP(METHOD_(MULTI|SINGLE|NO)CWD|SSL_(ALL|NONE|CONTROL|TRY)|AUTH_(DEFAULT|SSL|TLS))\n |AUTH_(ANY(SAFE)?|BASIC|DIGEST|GSSNEGOTIATE|NTLM))\n|CURL_(HTTP_VERSION_(1_(0|1)|NONE)|NETRC_(REQUIRED|IGNORED|OPTIONAL)|TIMECOND_(IF(UN)?MODSINCE|LASTMOD)\n |IPRESOLVE_(V(4|6)|WHATEVER)|VERSION_(SSL|IPV6|KERBEROS4|LIBZ))\n|IMAGETYPE_(GIF|XBM|BMP|SWF|COUNT|TIFF_(MM|II)|ICO|IFF|UNKNOWN|JB2|JPX|JP2|JPC|JPEG(2000)?|PSD|PNG|WBMP)\n|INPUT_(REQUEST|GET|SERVER|SESSION|COOKIE|POST|ENV)|ICONV_(MIME_DECODE_(STRICT|CONTINUE_ON_ERROR)|IMPL|VERSION)\n|DNS_(MX|SRV|SOA|HINFO|NS|NAPTR|CNAME|TXT|PTR|ANY|ALL|AAAA|A(6)?)\n|DOM(STRING_SIZE_ERR)\n|DOM_((SYNTAX|HIERARCHY_REQUEST|NO_(MODIFICATION_ALLOWED|DATA_ALLOWED)|NOT_(FOUND|SUPPORTED)|NAMESPACE\n |INDEX_SIZE|USE_ATTRIBUTE|VALID_(MODIFICATION|STATE|CHARACTER|ACCESS)|PHP|VALIDATION|WRONG_DOCUMENT)_ERR)\n|JSON_(HEX_(TAG|QUOT|AMP|APOS)|NUMERIC_CHECK|ERROR_(SYNTAX|STATE_MISMATCH|NONE|CTRL_CHAR|DEPTH|UTF8)|FORCE_OBJECT)\n|PREG_((D_UTF8(_OFFSET)?|NO|INTERNAL|(BACKTRACK|RECURSION)_LIMIT)_ERROR|GREP_INVERT\n |SPLIT_(NO_EMPTY|(DELIM|OFFSET)_CAPTURE)|SET_ORDER|OFFSET_CAPTURE|PATTERN_ORDER)\n|PSFS_(PASS_ON|ERR_FATAL|FEED_ME|FLAG_(NORMAL|FLUSH_(CLOSE|INC)))\n|PCRE_VERSION|POSIX_((F|R|W|X)_OK|S_IF(REG|BLK|SOCK|CHR|IFO))\n|FNM_(NOESCAPE|CASEFOLD|PERIOD|PATHNAME)\n|FILTER_(REQUIRE_(SCALAR|ARRAY)|NULL_ON_FAILURE|CALLBACK|DEFAULT|UNSAFE_RAW\n |SANITIZE_(MAGIC_QUOTES|STRING|STRIPPED|SPECIAL_CHARS|NUMBER_(INT|FLOAT)|URL\n |EMAIL|ENCODED|FULL_SPCIAL_CHARS)\n |VALIDATE_(REGEXP|BOOLEAN|INT|IP|URL|EMAIL|FLOAT)\n |FORCE_ARRAY\n |FLAG_(SCHEME_REQUIRED|STRIP_(BACKTICK|HIGH|LOW)|HOST_REQUIRED|NONE|NO_(RES|PRIV)_RANGE|ENCODE_QUOTES\n |IPV(4|6)|PATH_REQUIRED|EMPTY_STRING_NULL|ENCODE_(HIGH|LOW|AMP)|QUERY_REQUIRED\n |ALLOW_(SCIENTIFIC|HEX|THOUSAND|OCTAL|FRACTION)))\n|FILE_(BINARY|SKIP_EMPTY_LINES|NO_DEFAULT_CONTEXT|TEXT|IGNORE_NEW_LINES|USE_INCLUDE_PATH|APPEND)\n|FILEINFO_(RAW|MIME(_(ENCODING|TYPE))?|SYMLINK|NONE|CONTINUE|DEVICES|PRESERVE_ATIME)\n|FORCE_(DEFLATE|GZIP)\n|LIBXML_(XINCLUDE|NSCLEAN|NO(XMLDECL|BLANKS|NET|CDATA|ERROR|EMPTYTAG|ENT|WARNING)\n |COMPACT|DTD(VALID|LOAD|ATTR)|((DOTTED|LOADED)_)?VERSION|PARSEHUGE|ERR_(NONE|ERROR|FATAL|WARNING)))\n\\b", - "name": "support.constant.ext.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?x)\n(\\\\)?\\b\n(T_(RETURN|REQUIRE(_ONCE)?|GOTO|GLOBAL|(MINUS|MOD|MUL|XOR)_EQUAL|METHOD_C|ML_COMMENT|BREAK\n |BOOL_CAST|BOOLEAN_(AND|OR)|BAD_CHARACTER|SR(_EQUAL)?|STRING(_CAST|VARNAME)?|START_HEREDOC|STATIC\n |SWITCH|SL(_EQUAL)?|HALT_COMPILER|NS_(C|SEPARATOR)|NUM_STRING|NEW|NAMESPACE|CHARACTER|COMMENT\n |CONSTANT(_ENCAPSED_STRING)?|CONCAT_EQUAL|CONTINUE|CURLY_OPEN|CLOSE_TAG|CLONE|CLASS(_C)?\n |CASE|CATCH|TRY|THROW|IMPLEMENTS|ISSET|IS_((GREATER|SMALLER)_OR_EQUAL|(NOT_)?(IDENTICAL|EQUAL))\n |INSTANCEOF|INCLUDE(_ONCE)?|INC|INT_CAST|INTERFACE|INLINE_HTML|IF|OR_EQUAL|OBJECT_(CAST|OPERATOR)\n |OPEN_TAG(_WITH_ECHO)?|OLD_FUNCTION|DNUMBER|DIR|DIV_EQUAL|DOC_COMMENT|DOUBLE_(ARROW|CAST|COLON)\n |DOLLAR_OPEN_CURLY_BRACES|DO|DEC|DECLARE|DEFAULT|USE|UNSET(_CAST)?|PRINT|PRIVATE|PROTECTED|PUBLIC\n |PLUS_EQUAL|PAAMAYIM_NEKUDOTAYIM|EXTENDS|EXIT|EMPTY|ENCAPSED_AND_WHITESPACE\n |END(SWITCH|IF|DECLARE|FOR(EACH)?|WHILE)|END_HEREDOC|ECHO|EVAL|ELSE(IF)?|VAR(IABLE)?|FINAL|FILE\n |FOR(EACH)?|FUNC_C|FUNCTION|WHITESPACE|WHILE|LNUMBER|LIST|LINE|LOGICAL_(AND|OR|XOR)\n |ARRAY_(CAST)?|ABSTRACT|AS|AND_EQUAL))\n\\b", - "name": "support.constant.parser-token.php", - "captures": { - "1": { - "name": "punctuation.separator.inheritance.php" - } - } - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "name": "constant.other.php" - } - ] - }, - "function-parameters": { - "patterns": [ - { - "include": "#comments" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - }, - { - "match": "(?xi)\n(?: (\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ | # nullable type\n [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)+ # union type\n) \\s+ )?\n((?:(&)\\s*)?(\\.\\.\\.)(\\$)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment", - "captures": { - "1": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "storage.modifier.reference.php" - }, - "4": { - "name": "keyword.operator.variadic.php" - }, - "5": { - "name": "punctuation.definition.variable.php" - } - }, - "name": "meta.function.parameter.variadic.php" - }, - { - "begin": "(?xi)\n(\n (?:\\?\\s*)? [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ | # nullable type\n [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+ (?: \\s*\\|\\s* [a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+)+ # union type\n)\n\\s+ ((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Variable name with possible reference", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#php-types" - } - ] - }, - "2": { - "name": "variable.other.php" - }, - "3": { - "name": "storage.modifier.reference.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "name": "meta.function.parameter.typehinted.php", - "patterns": [ - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - { - "match": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Variable name with possible reference\n(?=\\s*(?:,|\\)|/[/*]|\\#|$)) # A closing parentheses (end of argument list) or a comma or a comment", - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "name": "meta.function.parameter.no-default.php" - }, - { - "begin": "(?xi)\n((?:(&)\\s*)?(\\$)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Variable name with possible reference\n\\s*(=)\\s*", - "beginCaptures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "storage.modifier.reference.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "keyword.operator.assignment.php" - } - }, - "end": "(?=\\s*(?:,|\\)|/[/*]|\\#))", - "name": "meta.function.parameter.default.php", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - } - ] - }, - "named-arguments": { - "match": "(?i)(?<=^|\\(|,)\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(:)(?!:)", - "captures": { - "1": { - "name": "entity.name.variable.parameter.php" - }, - "2": { - "name": "punctuation.separator.colon.php" - } - } - }, - "function-call": { - "patterns": [ - { - "begin": "(?x)\n(\n \\\\?(?<![a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]) # Optional root namespace\n [a-zA-Z_\\x{7f}-\\x{7fffffff}][a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]* # First namespace\n (?:\\\\[a-zA-Z_\\x{7f}-\\x{7fffffff}][a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]*)+ # Additional namespaces\n)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#namespace" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "name": "entity.name.function.php" - } - ] - }, - "2": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "begin": "(\\\\)?(?<![a-zA-Z0-9_\\x{7f}-\\x{7fffffff}])([a-zA-Z_\\x{7f}-\\x{7fffffff}][a-zA-Z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "patterns": [ - { - "include": "#namespace" - } - ] - }, - "2": { - "patterns": [ - { - "include": "#support" - }, - { - "match": "(?i)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "name": "entity.name.function.php" - } - ] - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.function-call.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "match": "(?i)\\b(print|echo)\\b", - "name": "support.function.construct.output.php" - } - ] - }, - "heredoc": { - "patterns": [ - { - "begin": "(?i)(?=<<<\\s*(\"?)([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)(\\1)\\s*$)", - "end": "(?!\\G)", - "name": "string.unquoted.heredoc.php", - "patterns": [ - { - "include": "#heredoc_interior" - } - ] - }, - { - "begin": "(?=<<<\\s*'([a-zA-Z_]+[a-zA-Z0-9_]*)'\\s*$)", - "end": "(?!\\G)", - "name": "string.unquoted.nowdoc.php", - "patterns": [ - { - "include": "#nowdoc_interior" - } - ] - } - ] - }, - "heredoc_interior": { - "patterns": [ - { - "begin": "(<<<)\\s*(\"?)(HTML)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.html", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(XML)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.xml", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.xml", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "text.xml" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(SQL)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.sql", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.sql", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.sql" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(JAVASCRIPT|JS)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.js", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.js", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.js" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(JSON)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.json", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.json", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.json" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(CSS)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.css", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "name": "meta.embedded.css", - "patterns": [ - { - "include": "#interpolation" - }, - { - "include": "source.css" - } - ] - }, - { - "begin": "(<<<)\\s*(\"?)(REGEXP?)(\\2)(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "string.regexp.heredoc.php", - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repitition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repitition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repitition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "match": "\\\\[\\\\'\\[\\]]", - "name": "constant.character.escape.php" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - }, - { - "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{7fffffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.line.number-sign.php" - } - ] - }, - { - "begin": "(?i)(<<<)\\s*(\"?)([a-z_\\x{7f}-\\x{7fffffff}]+[a-z0-9_\\x{7f}-\\x{7fffffff}]*)(\\2)(\\s*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.php" - }, - "3": { - "name": "keyword.operator.heredoc.php" - }, - "5": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "end": "^\\s*(\\3)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "1": { - "name": "keyword.operator.heredoc.php" - } - }, - "patterns": [ - { - "include": "#interpolation" - } - ] - } - ] - }, - "nowdoc_interior": { - "patterns": [ - { - "begin": "(<<<)\\s*'(HTML)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.html", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.html", - "patterns": [ - { - "include": "text.html.basic" - } - ] - }, - { - "begin": "(<<<)\\s*'(XML)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "text.xml", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.xml", - "patterns": [ - { - "include": "text.xml" - } - ] - }, - { - "begin": "(<<<)\\s*'(SQL)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.sql", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.sql", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - { - "begin": "(<<<)\\s*'(JAVASCRIPT|JS)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.js", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.js", - "patterns": [ - { - "include": "source.js" - } - ] - }, - { - "begin": "(<<<)\\s*'(JSON)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.json", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.json", - "patterns": [ - { - "include": "source.json" - } - ] - }, - { - "begin": "(<<<)\\s*'(CSS)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "source.css", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "name": "meta.embedded.css", - "patterns": [ - { - "include": "source.css" - } - ] - }, - { - "begin": "(<<<)\\s*'(REGEXP?)'(\\s*)$", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.php" - }, - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "contentName": "string.regexp.nowdoc.php", - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.php" - }, - "1": { - "name": "keyword.operator.nowdoc.php" - } - }, - "patterns": [ - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repitition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repitition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repitition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "match": "\\\\[\\\\'\\[\\]]", - "name": "constant.character.escape.php" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - }, - { - "begin": "(?i)(?<=^|\\s)(#)\\s(?=[[a-z0-9_\\x{7f}-\\x{7fffffff},. \\t?!-][^\\x{00}-\\x{7f}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.php" - } - }, - "end": "$", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.php" - } - }, - "name": "comment.line.number-sign.php" - } - ] - }, - { - "begin": "(?i)(<<<)\\s*'([a-z_\\x{7f}-\\x{7fffffff}]+[a-z0-9_\\x{7f}-\\x{7fffffff}]*)'(\\s*)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.php" - }, - "2": { - "name": "keyword.operator.nowdoc.php" - }, - "3": { - "name": "invalid.illegal.trailing-whitespace.php" - } - }, - "end": "^\\s*(\\2)(?![A-Za-z0-9_\\x{7f}-\\x{7fffffff}])", - "endCaptures": { - "1": { - "name": "keyword.operator.nowdoc.php" - } - } - } - ] - }, - "instantiation": { - "begin": "(?i)(new)\\s+(?!class\\b)", - "beginCaptures": { - "1": { - "name": "keyword.other.new.php" - } - }, - "end": "(?i)(?=[^a-z0-9_\\x{7f}-\\x{7fffffff}\\\\])", - "patterns": [ - { - "match": "(?i)(parent|static|self)(?![a-z0-9_\\x{7f}-\\x{7fffffff}])", - "name": "storage.type.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - }, - "interpolation": { - "patterns": [ - { - "match": "\\\\[0-7]{1,3}", - "name": "constant.character.escape.octal.php" - }, - { - "match": "\\\\x[0-9A-Fa-f]{1,2}", - "name": "constant.character.escape.hex.php" - }, - { - "match": "\\\\u{[0-9A-Fa-f]+}", - "name": "constant.character.escape.unicode.php" - }, - { - "match": "\\\\[nrtvef$\\\\]", - "name": "constant.character.escape.php" - }, - { - "begin": "{(?=\\$.*?})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#variable-name" - } - ] - }, - "interpolation_double_quoted": { - "patterns": [ - { - "match": "\\\\\"", - "name": "constant.character.escape.php" - }, - { - "include": "#interpolation" - } - ] - }, - "invoke-call": { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((\\$+)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)(?=\\s*\\()", - "name": "meta.function-call.invoke.php" - }, - "namespace": { - "begin": "(?i)(?:(namespace)|[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)?(\\\\)", - "beginCaptures": { - "1": { - "name": "variable.language.namespace.php" - }, - "2": { - "name": "punctuation.separator.inheritance.php" - } - }, - "end": "(?i)(?![a-z0-9_\\x{7f}-\\x{7fffffff}]*\\\\)", - "name": "support.other.namespace.php", - "patterns": [ - { - "match": "\\\\", - "name": "punctuation.separator.inheritance.php" - } - ] - }, - "numbers": { - "patterns": [ - { - "match": "0[xX][0-9a-fA-F]+(?:_[0-9a-fA-F]+)*", - "name": "constant.numeric.hex.php" - }, - { - "match": "0[bB][01]+(?:_[01]+)*", - "name": "constant.numeric.binary.php" - }, - { - "match": "0(?:_?[0-7]+)+", - "name": "constant.numeric.octal.php" - }, - { - "match": "(?x)\n(?:\n (?:[0-9]+(?:_[0-9]+)*)?(\\.)[0-9]+(?:_[0-9]+)*(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # .3\n [0-9]+(?:_[0-9]+)*(\\.)(?:[0-9]+(?:_[0-9]+)*)?(?:[eE][+-]?[0-9]+(?:_[0-9]+)*)?| # 3.\n [0-9]+(?:_[0-9]+)*[eE][+-]?[0-9]+(?:_[0-9]+)* # 2e-3\n)", - "name": "constant.numeric.decimal.php", - "captures": { - "1": { - "name": "punctuation.separator.decimal.period.php" - }, - "2": { - "name": "punctuation.separator.decimal.period.php" - } - } - }, - { - "match": "0|[1-9](?:_?[0-9]+)*", - "name": "constant.numeric.decimal.php" - } - ] - }, - "object": { - "patterns": [ - { - "begin": "(\\??->)\\s*(\\$?{)", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "(?i)(\\??->)\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "entity.name.function.php" - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.method-call.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "variable.other.property.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)(\\??->)\\s*((\\$+)?[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)?" - } - ] - }, - "php-types": { - "patterns": [ - { - "match": "\\?", - "name": "keyword.operator.nullable-type.php" - }, - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - }, - { - "match": "(?i)\\b(null|int|float|bool|string|array|object|callable|iterable|false|mixed)\\b", - "name": "storage.type.php" - }, - { - "match": "(?i)\\b(parent|self)\\b", - "name": "storage.type.php" - }, - { - "include": "#class-name" - } - ] - }, - "parameter-default-types": { - "patterns": [ - { - "include": "#strings" - }, - { - "include": "#numbers" - }, - { - "include": "#string-backtick" - }, - { - "include": "#variables" - }, - { - "match": "=>", - "name": "keyword.operator.key.php" - }, - { - "match": "=", - "name": "keyword.operator.assignment.php" - }, - { - "match": "&(?=\\s*\\$)", - "name": "storage.modifier.reference.php" - }, - { - "begin": "(array)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.construct.php" - }, - "2": { - "name": "punctuation.definition.array.begin.bracket.round.php" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.array.end.bracket.round.php" - } - }, - "name": "meta.array.php", - "patterns": [ - { - "include": "#parameter-default-types" - } - ] - }, - { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.php" - } - }, - "end": "\\]|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "include": "#instantiation" - }, - { - "begin": "(?xi)\n(?=[a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]+\n (::)\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)?\n)", - "end": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)?", - "endCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "constant.other.class.php" - } - }, - "patterns": [ - { - "include": "#class-name" - } - ] - }, - { - "include": "#constants" - } - ] - }, - "php_doc": { - "patterns": [ - { - "match": "^(?!\\s*\\*).*?(?:(?=\\*\\/)|$\\n?)", - "name": "invalid.illegal.missing-asterisk.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "3": { - "name": "storage.modifier.php" - }, - "4": { - "name": "invalid.illegal.wrong-access-type.phpdoc.php" - } - }, - "match": "^\\s*\\*\\s*(@access)\\s+((public|private|protected)|(.+))\\s*$" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - }, - "2": { - "name": "markup.underline.link.php" - } - }, - "match": "(@xlink)\\s+(.+)\\s*$" - }, - { - "begin": "(@(?:global|param|property(-(read|write))?|return|throws|var))\\s+(?=[A-Za-z_\\x{7f}-\\x{7fffffff}\\\\]|\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.phpdoc.php" - } - }, - "end": "(?=\\s|\\*/)", - "contentName": "meta.other.type.phpdoc.php", - "patterns": [ - { - "include": "#php_doc_types_array_multiple" - }, - { - "include": "#php_doc_types_array_single" - }, - { - "include": "#php_doc_types" - } - ] - }, - { - "match": "(?x)\n@\n(\n api|abstract|author|category|copyright|example|global|inherit[Dd]oc|internal|\n license|link|method|property(-(read|write))?|package|param|return|see|since|source|\n static|subpackage|throws|todo|var|version|uses|deprecated|final|ignore\n)\\b", - "name": "keyword.other.phpdoc.php" - }, - { - "captures": { - "1": { - "name": "keyword.other.phpdoc.php" - } - }, - "match": "{(@(link|inherit[Dd]oc)).+?}", - "name": "meta.tag.inline.phpdoc.php" - } - ] - }, - "php_doc_types": { - "match": "(?i)[a-z_\\x{7f}-\\x{7fffffff}\\\\][a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*(\\|[a-z_\\x{7f}-\\x{7fffffff}\\\\][a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)*", - "captures": { - "0": { - "patterns": [ - { - "match": "(?x)\\b\n(string|integer|int|boolean|bool|float|double|object|mixed\n|array|resource|void|null|callback|false|true|self|static)\\b", - "name": "keyword.other.type.php" - }, - { - "include": "#class-name" - }, - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - } - ] - } - } - }, - "php_doc_types_array_multiple": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.bracket.round.phpdoc.php" - } - }, - "end": "(\\))(\\[\\])|(?=\\*/)", - "endCaptures": { - "1": { - "name": "punctuation.definition.type.end.bracket.round.phpdoc.php" - }, - "2": { - "name": "keyword.other.array.phpdoc.php" - } - }, - "patterns": [ - { - "include": "#php_doc_types_array_multiple" - }, - { - "include": "#php_doc_types_array_single" - }, - { - "include": "#php_doc_types" - }, - { - "match": "\\|", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "php_doc_types_array_single": { - "match": "(?i)([a-z_\\x{7f}-\\x{7fffffff}\\\\][a-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(\\[\\])", - "captures": { - "1": { - "patterns": [ - { - "include": "#php_doc_types" - } - ] - }, - "2": { - "name": "keyword.other.array.phpdoc.php" - } - } - }, - "regex-double-quoted": { - "begin": "\"/(?=(\\\\.|[^\"/])++/[imsxeADSUXu]*\")", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(\")", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.double-quoted.php", - "patterns": [ - { - "match": "(\\\\){1,2}[.$^\\[\\]{}]", - "name": "constant.character.escape.regex.php" - }, - { - "include": "#interpolation_double_quoted" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php", - "patterns": [ - { - "include": "#interpolation_double_quoted" - } - ] - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "regex-single-quoted": { - "begin": "'/(?=(\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)|[^'/])++/[imsxeADSUXu]*')", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "(/)([imsxeADSUXu]*)(')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.regexp.single-quoted.php", - "patterns": [ - { - "include": "#single_quote_regex_escape" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.arbitrary-repetition.php" - }, - "3": { - "name": "punctuation.definition.arbitrary-repetition.php" - } - }, - "match": "({)\\d+(,\\d+)?(})", - "name": "string.regexp.arbitrary-repetition.php" - }, - { - "begin": "\\[(?:\\^?\\])?", - "captures": { - "0": { - "name": "punctuation.definition.character-class.php" - } - }, - "end": "\\]", - "name": "string.regexp.character-class.php" - }, - { - "match": "[$^+*]", - "name": "keyword.operator.regexp.php" - } - ] - }, - "scope-resolution": { - "patterns": [ - { - "match": "([A-Za-z_\\x{7f}-\\x{7fffffff}\\\\][A-Za-z0-9_\\x{7f}-\\x{7fffffff}\\\\]*)(?=\\s*::)", - "captures": { - "1": { - "patterns": [ - { - "match": "\\b(self|static|parent)\\b", - "name": "storage.type.php" - }, - { - "include": "#class-name" - }, - { - "include": "#variable-name" - } - ] - } - } - }, - { - "begin": "(?i)(::)\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "entity.name.function.php" - }, - "3": { - "name": "punctuation.definition.arguments.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.bracket.round.php" - } - }, - "name": "meta.method-call.static.php", - "patterns": [ - { - "include": "#named-arguments" - }, - { - "include": "$self" - } - ] - }, - { - "match": "(?i)(::)\\s*(class)\\b", - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "keyword.other.class.php" - } - } - }, - { - "match": "(?xi)\n(::)\\s*\n(?:\n ((\\$+)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Variable\n |\n ([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*) # Constant\n)?", - "captures": { - "1": { - "name": "keyword.operator.class.php" - }, - "2": { - "name": "variable.other.class.php" - }, - "3": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "constant.other.class.php" - } - } - } - ] - }, - "single_quote_regex_escape": { - "match": "\\\\(?:\\\\(?:\\\\[\\\\']?|[^'])|.)", - "name": "constant.character.escape.php" - }, - "sql-string-double-quoted": { - "begin": "\"\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.sql.php", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - "sql-string-single-quoted": { - "begin": "'\\s*(?=(SELECT|INSERT|UPDATE|DELETE|CREATE|REPLACE|ALTER|AND)\\b)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "contentName": "source.sql.embedded.php", - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.sql.php", - "patterns": [ - { - "include": "source.sql" - } - ] - }, - "string-backtick": { - "begin": "`", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.interpolated.php", - "patterns": [ - { - "match": "\\\\`", - "name": "constant.character.escape.php" - }, - { - "include": "#interpolation" - } - ] - }, - "string-double-quoted": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.double.php", - "patterns": [ - { - "include": "#interpolation_double_quoted" - } - ] - }, - "string-single-quoted": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.php" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.php" - } - }, - "name": "string.quoted.single.php", - "patterns": [ - { - "match": "\\\\[\\\\']", - "name": "constant.character.escape.php" - } - ] - }, - "strings": { - "patterns": [ - { - "include": "#regex-double-quoted" - }, - { - "include": "#sql-string-double-quoted" - }, - { - "include": "#string-double-quoted" - }, - { - "include": "#regex-single-quoted" - }, - { - "include": "#sql-string-single-quoted" - }, - { - "include": "#string-single-quoted" - } - ] - }, - "support": { - "patterns": [ - { - "match": "(?xi)\n\\b\napc_(\n store|sma_info|compile_file|clear_cache|cas|cache_info|inc|dec|define_constants|delete(_file)?|\n exists|fetch|load_constants|add|bin_(dump|load)(file)?\n)\\b", - "name": "support.function.apc.php" - }, - { - "match": "(?xi)\\b\n(\n shuffle|sizeof|sort|next|nat(case)?sort|count|compact|current|in_array|usort|uksort|uasort|\n pos|prev|end|each|extract|ksort|key(_exists)?|krsort|list|asort|arsort|rsort|reset|range|\n array(_(shift|sum|splice|search|slice|chunk|change_key_case|count_values|column|combine|\n (diff|intersect)(_(u)?(key|assoc))?|u(diff|intersect)(_(u)?assoc)?|unshift|unique|\n pop|push|pad|product|values|keys|key_exists|filter|fill(_keys)?|flip|walk(_recursive)?|\n reduce|replace(_recursive)?|reverse|rand|multisort|merge(_recursive)?|map)?)\n)\\b", - "name": "support.function.array.php" - }, - { - "match": "(?xi)\\b\n(\n show_source|sys_getloadavg|sleep|highlight_(file|string)|constant|connection_(aborted|status)|\n time_(nanosleep|sleep_until)|ignore_user_abort|die|define(d)?|usleep|uniqid|unpack|__halt_compiler|\n php_(check_syntax|strip_whitespace)|pack|eval|exit|get_browser\n)\\b", - "name": "support.function.basic_functions.php" - }, - { - "match": "(?i)\\bbc(scale|sub|sqrt|comp|div|pow(mod)?|add|mod|mul)\\b", - "name": "support.function.bcmath.php" - }, - { - "match": "(?i)\\bblenc_encrypt\\b", - "name": "support.function.blenc.php" - }, - { - "match": "(?i)\\bbz(compress|close|open|decompress|errstr|errno|error|flush|write|read)\\b", - "name": "support.function.bz2.php" - }, - { - "match": "(?xi)\\b\n(\n (French|Gregorian|Jewish|Julian)ToJD|cal_(to_jd|info|days_in_month|from_jd)|unixtojd|\n jdto(unix|jewish)|easter_(date|days)|JD(MonthName|To(Gregorian|Julian|French)|DayOfWeek)\n)\\b", - "name": "support.function.calendar.php" - }, - { - "match": "(?xi)\\b\n(\n class_alias|all_user_method(_array)?|is_(a|subclass_of)|__autoload|(class|interface|method|property|trait)_exists|\n get_(class(_(vars|methods))?|(called|parent)_class|object_vars|declared_(classes|interfaces|traits))\n)\\b", - "name": "support.function.classobj.php" - }, - { - "match": "(?xi)\\b\n(\n com_(create_guid|print_typeinfo|event_sink|load_typelib|get_active_object|message_pump)|\n variant_(sub|set(_type)?|not|neg|cast|cat|cmp|int|idiv|imp|or|div|date_(from|to)_timestamp|\n pow|eqv|fix|and|add|abs|round|get_type|xor|mod|mul)\n)\\b", - "name": "support.function.com.php" - }, - { - "match": "(?i)\\b(isset|unset|eval|empty|list)\\b", - "name": "support.function.construct.php" - }, - { - "match": "(?i)\\b(print|echo)\\b", - "name": "support.function.construct.output.php" - }, - { - "match": "(?i)\\bctype_(space|cntrl|digit|upper|punct|print|lower|alnum|alpha|graph|xdigit)\\b", - "name": "support.function.ctype.php" - }, - { - "match": "(?xi)\\b\ncurl_(\n share_(close|init|setopt)|strerror|setopt(_array)?|copy_handle|close|init|unescape|pause|escape|\n errno|error|exec|version|file_create|reset|getinfo|\n multi_(strerror|setopt|select|close|init|info_read|(add|remove)_handle|getcontent|exec)\n)\\b", - "name": "support.function.curl.php" - }, - { - "match": "(?xi)\\b\n(\n strtotime|str[fp]time|checkdate|time|timezone_name_(from_abbr|get)|idate|\n timezone_((location|offset|transitions|version)_get|(abbreviations|identifiers)_list|open)|\n date(_(sun(rise|set)|sun_info|sub|create(_(immutable_)?from_format)?|timestamp_(get|set)|timezone_(get|set)|time_set|\n isodate_set|interval_(create_from_date_string|format)|offset_get|diff|default_timezone_(get|set)|date_set|\n parse(_from_format)?|format|add|get_last_errors|modify))?|\n localtime|get(date|timeofday)|gm(strftime|date|mktime)|microtime|mktime\n)\\b", - "name": "support.function.datetime.php" - }, - { - "match": "(?i)\\bdba_(sync|handlers|nextkey|close|insert|optimize|open|delete|popen|exists|key_split|firstkey|fetch|list|replace)\\b", - "name": "support.function.dba.php" - }, - { - "match": "(?i)\\bdbx_(sort|connect|compare|close|escape_string|error|query|fetch_row)\\b", - "name": "support.function.dbx.php" - }, - { - "match": "(?i)\\b(scandir|chdir|chroot|closedir|opendir|dir|rewinddir|readdir|getcwd)\\b", - "name": "support.function.dir.php" - }, - { - "match": "(?xi)\\b\neio_(\n sync(fs)?|sync_file_range|symlink|stat(vfs)?|sendfile|set_min_parallel|set_max_(idle|poll_(reqs|time)|parallel)|\n seek|n(threads|op|pending|reqs|ready)|chown|chmod|custom|close|cancel|truncate|init|open|dup2|unlink|utime|poll|\n event_loop|f(sync|stat(vfs)?|chown|chmod|truncate|datasync|utime|allocate)|write|lstat|link|rename|realpath|\n read(ahead|dir|link)?|rmdir|get_(event_stream|last_error)|grp(_(add|cancel|limit))?|mknod|mkdir|busy\n)\\b", - "name": "support.function.eio.php" - }, - { - "match": "(?xi)\\b\nenchant_(\n dict_(store_replacement|suggest|check|is_in_session|describe|quick_check|add_to_(personal|session)|get_error)|\n broker_(set_ordering|init|dict_exists|describe|free(_dict)?|list_dicts|request_(pwl_)?dict|get_error)\n)\\b", - "name": "support.function.enchant.php" - }, - { - "match": "(?i)\\b(split(i)?|sql_regcase|ereg(i)?(_replace)?)\\b", - "name": "support.function.ereg.php" - }, - { - "match": "(?i)\\b((restore|set)_(error_handler|exception_handler)|trigger_error|debug_(print_)?backtrace|user_error|error_(log|reporting|get_last))\\b", - "name": "support.function.errorfunc.php" - }, - { - "match": "(?i)\\b(shell_exec|system|passthru|proc_(nice|close|terminate|open|get_status)|escapeshell(arg|cmd)|exec)\\b", - "name": "support.function.exec.php" - }, - { - "match": "(?i)\\b(exif_(thumbnail|tagname|imagetype|read_data)|read_exif_data)\\b", - "name": "support.function.exif.php" - }, - { - "match": "(?xi)\\b\nfann_(\n (duplicate|length|merge|shuffle|subset)_train_data|scale_(train(_data)?|(input|output)(_train_data)?)|\n set_(scaling_params|sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|\n cascade_(num_candidate_groups|candidate_(change_fraction|limit|stagnation_epochs)|\n output_(change_fraction|stagnation_epochs)|weight_multiplier|activation_(functions|steepnesses)|\n (max|min)_(cand|out)_epochs)|\n callback|training_algorithm|train_(error|stop)_function|(input|output)_scaling_params|error_log|\n quickprop_(decay|mu)|weight(_array)?|learning_(momentum|rate)|bit_fail_limit|\n activation_(function|steepness)(_(hidden|layer|output))?|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))|\n save(_train)?|num_(input|output)_train_data|copy|clear_scaling_params|cascadetrain_on_(file|data)|\n create_((sparse|shortcut|standard)(_array)?|train(_from_callback)?|from_file)|\n test(_data)?|train(_(on_(file|data)|epoch))?|init_weights|descale_(input|output|train)|destroy(_train)?|\n print_error|run|reset_(MSE|err(no|str))|read_train_from_file|randomize_weights|\n get_(sarprop_(step_error_(shift|threshold_factor)|temperature|weight_decay_shift)|num_(input|output|layers)|\n network_type|MSE|connection_(array|rate)|bias_array|bit_fail(_limit)?|\n cascade_(num_(candidates|candidate_groups)|(candidate|output)_(change_fraction|limit|stagnation_epochs)|\n weight_multiplier|activation_(functions|steepnesses)(_count)?|(max|min)_(cand|out)_epochs)|\n total_(connections|neurons)|training_algorithm|train_(error|stop)_function|err(no|str)|\n quickprop_(decay|mu)|learning_(momentum|rate)|layer_array|activation_(function|steepness)|\n rprop_((decrease|increase)_factor|delta_(max|min|zero)))\n)\\b", - "name": "support.function.fann.php" - }, - { - "match": "(?xi)\\b\n(\n symlink|stat|set_file_buffer|chown|chgrp|chmod|copy|clearstatcache|touch|tempnam|tmpfile|\n is_(dir|(uploaded_)?file|executable|link|readable|writ(e)?able)|disk_(free|total)_space|diskfreespace|\n dirname|delete|unlink|umask|pclose|popen|pathinfo|parse_ini_(file|string)|fscanf|fstat|fseek|fnmatch|\n fclose|ftell|ftruncate|file(size|[acm]time|type|inode|owner|perms|group)?|file_(exists|(get|put)_contents)|\n f(open|puts|putcsv|passthru|eof|flush|write|lock|read|gets(s)?|getc(sv)?)|lstat|lchown|lchgrp|link(info)?|\n rename|rewind|read(file|link)|realpath(_cache_(get|size))?|rmdir|glob|move_uploaded_file|mkdir|basename\n)\\b", - "name": "support.function.file.php" - }, - { - "match": "(?i)\\b(finfo_(set_flags|close|open|file|buffer)|mime_content_type)\\b", - "name": "support.function.fileinfo.php" - }, - { - "match": "(?i)\\bfilter_(has_var|input(_array)?|id|var(_array)?|list)\\b", - "name": "support.function.filter.php" - }, - { - "match": "(?i)\\bfastcgi_finish_request\\b", - "name": "support.function.fpm.php" - }, - { - "match": "(?i)\\b(call_user_(func|method)(_array)?|create_function|unregister_tick_function|forward_static_call(_array)?|function_exists|func_(num_args|get_arg(s)?)|register_(shutdown|tick)_function|get_defined_functions)\\b", - "name": "support.function.funchand.php" - }, - { - "match": "(?i)\\b((n)?gettext|textdomain|d((n)?gettext|c(n)?gettext)|bind(textdomain|_textdomain_codeset))\\b", - "name": "support.function.gettext.php" - }, - { - "match": "(?xi)\\b\ngmp_(\n scan[01]|strval|sign|sub|setbit|sqrt(rem)?|hamdist|neg|nextprime|com|clrbit|cmp|testbit|\n intval|init|invert|import|or|div(exact)?|div_(q|qr|r)|jacobi|popcount|pow(m)?|perfect_square|\n prob_prime|export|fact|legendre|and|add|abs|root(rem)?|random(_(bits|range))?|gcd(ext)?|xor|mod|mul\n)\\b", - "name": "support.function.gmp.php" - }, - { - "match": "(?i)\\bhash(_(hmac(_file)?|copy|init|update(_(file|stream))?|pbkdf2|equals|file|final|algos))?\\b", - "name": "support.function.hash.php" - }, - { - "match": "(?xi)\\b\n(\n http_(support|send_(status|stream|content_(disposition|type)|data|file|last_modified)|head|\n negotiate_(charset|content_type|language)|chunked_decode|cache_(etag|last_modified)|throttle|\n inflate|deflate|date|post_(data|fields)|put_(data|file|stream)|persistent_handles_(count|clean|ident)|\n parse_(cookie|headers|message|params)|redirect|request(_(method_(exists|name|(un)?register)|body_encode))?|\n get(_request_(headers|body(_stream)?))?|match_(etag|modified|request_header)|build_(cookie|str|url))|\n ob_(etag|deflate|inflate)handler\n)\\b", - "name": "support.function.http.php" - }, - { - "match": "(?i)\\b(iconv(_(str(pos|len|rpos)|substr|(get|set)_encoding|mime_(decode(_headers)?|encode)))?|ob_iconv_handler)\\b", - "name": "support.function.iconv.php" - }, - { - "match": "(?i)\\biis_((start|stop)_(service|server)|set_(script_map|server_rights|dir_security|app_settings)|(add|remove)_server|get_(script_map|service_state|server_(rights|by_(comment|path))|dir_security))\\b", - "name": "support.function.iisfunc.php" - }, - { - "match": "(?xi)\\b\n(\n iptc(embed|parse)|(jpeg|png)2wbmp|gd_info|getimagesize(fromstring)?|\n image(s[xy]|scale|(char|string)(up)?|set(style|thickness|tile|interpolation|pixel|brush)|savealpha|\n convolution|copy(resampled|resized|merge(gray)?)?|colors(forindex|total)|\n color(set|closest(alpha|hwb)?|transparent|deallocate|(allocate|exact|resolve)(alpha)?|at|match)|\n crop(auto)?|create(truecolor|from(string|jpeg|png|wbmp|webp|gif|gd(2(part)?)?|xpm|xbm))?|\n types|ttf(bbox|text)|truecolortopalette|istruecolor|interlace|2wbmp|destroy|dashedline|jpeg|\n _type_to_(extension|mime_type)|ps(slantfont|text|(encode|extend|free|load)font|bbox)|png|polygon|\n palette(copy|totruecolor)|ellipse|ft(text|bbox)|filter|fill|filltoborder|\n filled(arc|ellipse|polygon|rectangle)|font(height|width)|flip|webp|wbmp|line|loadfont|layereffect|\n antialias|affine(matrix(concat|get))?|alphablending|arc|rotate|rectangle|gif|gd(2)?|gammacorrect|\n grab(screen|window)|xbm)\n)\\b", - "name": "support.function.image.php" - }, - { - "match": "(?xi)\\b\n(\n sys_get_temp_dir|set_(time_limit|include_path|magic_quotes_runtime)|cli_(get|set)_process_title|\n ini_(alter|get(_all)?|restore|set)|zend_(thread_id|version|logo_guid)|dl|php(credits|info|version)|\n php_(sapi_name|ini_(scanned_files|loaded_file)|uname|logo_guid)|putenv|extension_loaded|version_compare|\n assert(_options)?|restore_include_path|gc_(collect_cycles|disable|enable(d)?)|getopt|\n get_(cfg_var|current_user|defined_constants|extension_funcs|include_path|included_files|loaded_extensions|\n magic_quotes_(gpc|runtime)|required_files|resources)|\n get(env|lastmod|rusage|my(inode|[gup]id))|\n memory_get_(peak_)?usage|main|magic_quotes_runtime\n)\\b", - "name": "support.function.info.php" - }, - { - "match": "(?xi)\\b\nibase_(\n set_event_handler|service_(attach|detach)|server_info|num_(fields|params)|name_result|connect|\n commit(_ret)?|close|trans|delete_user|drop_db|db_info|pconnect|param_info|prepare|err(code|msg)|\n execute|query|field_info|fetch_(assoc|object|row)|free_(event_handler|query|result)|wait_event|\n add_user|affected_rows|rollback(_ret)?|restore|gen_id|modify_user|maintain_db|backup|\n blob_(cancel|close|create|import|info|open|echo|add|get)\n)\\b", - "name": "support.function.interbase.php" - }, - { - "match": "(?xi)\\b\n(\n normalizer_(normalize|is_normalized)|idn_to_(unicode|utf8|ascii)|\n numfmt_(set_(symbol|(text_)?attribute|pattern)|create|(parse|format)(_currency)?|\n get_(symbol|(text_)?attribute|pattern|error_(code|message)|locale))|\n collator_(sort(_with_sort_keys)?|set_(attribute|strength)|compare|create|asort|\n get_(strength|sort_key|error_(code|message)|locale|attribute))|\n transliterator_(create(_(inverse|from_rules))?|transliterate|list_ids|get_error_(code|message))|\n intl(cal|tz)_get_error_(code|message)|intl_(is_failure|error_name|get_error_(code|message))|\n datefmt_(set_(calendar|lenient|pattern|timezone(_id)?)|create|is_lenient|parse|format(_object)?|localtime|\n get_(calendar(_object)?|time(type|zone(_id)?)|datetype|pattern|error_(code|message)|locale))|\n locale_(set_default|compose|canonicalize|parse|filter_matches|lookup|accept_from_http|\n get_(script|display_(script|name|variant|language|region)|default|primary_language|keywords|all_variants|region))|\n resourcebundle_(create|count|locales|get(_(error_(code|message)))?)|\n grapheme_(str(i?str|r?i?pos|len)|substr|extract)|\n msgfmt_(set_pattern|create|(format|parse)(_message)?|get_(pattern|error_(code|message)|locale))\n)\\b", - "name": "support.function.intl.php" - }, - { - "match": "(?i)\\bjson_(decode|encode|last_error(_msg)?)\\b", - "name": "support.function.json.php" - }, - { - "match": "(?xi)\\b\nldap_(\n start|tls|sort|search|sasl_bind|set_(option|rebind_proc)|(first|next)_(attribute|entry|reference)|\n connect|control_paged_result(_response)?|count_entries|compare|close|t61_to_8859|8859_to_t61|\n dn2ufn|delete|unbind|parse_(reference|result)|escape|errno|err2str|error|explode_dn|bind|\n free_result|list|add|rename|read|get_(option|dn|entries|values(_len)?|attributes)|modify(_batch)?|\n mod_(add|del|replace)\n)\\b", - "name": "support.function.ldap.php" - }, - { - "match": "(?i)\\blibxml_(set_(streams_context|external_entity_loader)|clear_errors|disable_entity_loader|use_internal_errors|get_(errors|last_error))\\b", - "name": "support.function.libxml.php" - }, - { - "match": "(?i)\\b(ezmlm_hash|mail)\\b", - "name": "support.function.mail.php" - }, - { - "match": "(?xi)\\b\n(\n (a)?(cos|sin|tan)(h)?|sqrt|srand|hypot|hexdec|ceil|is_(nan|(in)?finite)|octdec|dec(hex|oct|bin)|deg2rad|\n pi|pow|exp(m1)?|floor|fmod|lcg_value|log(1(p|0))?|atan2|abs|round|rand|rad2deg|getrandmax|\n mt_(srand|rand|getrandmax)|max|min|bindec|base_convert\n)\\b", - "name": "support.function.math.php" - }, - { - "match": "(?xi)\\b\nmb_(\n str(cut|str|to(lower|upper)|istr|ipos|imwidth|pos|width|len|rchr|richr|ripos|rpos)|\n substitute_character|substr(_count)?|split|send_mail|http_(input|output)|check_encoding|\n convert_(case|encoding|kana|variables)|internal_encoding|output_handler|decode_(numericentity|mimeheader)|\n detect_(encoding|order)|parse_str|preferred_mime_name|encoding_aliases|encode_(numericentity|mimeheader)|\n ereg(i(_replace)?)?|ereg_(search(_(get(pos|regs)|init|regs|(set)?pos))?|replace(_callback)?|match)|\n list_encodings|language|regex_(set_options|encoding)|get_info\n)\\b", - "name": "support.function.mbstring.php" - }, - { - "match": "(?xi)\\b\n(\n mcrypt_(\n cfb|create_iv|cbc|ofb|decrypt|encrypt|ecb|list_(algorithms|modes)|generic(_((de)?init|end))?|\n enc_(self_test|is_block_(algorithm|algorithm_mode|mode)|\n get_(supported_key_sizes|(block|iv|key)_size|(algorithms|modes)_name))|\n get_(cipher_name|(block|iv|key)_size)|\n module_(close|self_test|is_block_(algorithm|algorithm_mode|mode)|open|\n get_(supported_key_sizes|algo_(block|key)_size)))|\n mdecrypt_generic\n)\\b", - "name": "support.function.mcrypt.php" - }, - { - "match": "(?i)\\bmemcache_debug\\b", - "name": "support.function.memcache.php" - }, - { - "match": "(?i)\\bmhash(_(count|keygen_s2k|get_(hash_name|block_size)))?\\b", - "name": "support.function.mhash.php" - }, - { - "match": "(?i)\\b(log_(cmd_(insert|delete|update)|killcursor|write_batch|reply|getmore)|bson_(decode|encode))\\b", - "name": "support.function.mongo.php" - }, - { - "match": "(?xi)\\b\nmysql_(\n stat|set_charset|select_db|num_(fields|rows)|connect|client_encoding|close|create_db|escape_string|\n thread_id|tablename|insert_id|info|data_seek|drop_db|db_(name|query)|unbuffered_query|pconnect|ping|\n errno|error|query|field_(seek|name|type|table|flags|len)|fetch_(object|field|lengths|assoc|array|row)|\n free_result|list_(tables|dbs|processes|fields)|affected_rows|result|real_escape_string|\n get_(client|host|proto|server)_info\n)\\b", - "name": "support.function.mysql.php" - }, - { - "match": "(?xi)\\b\nmysqli_(\n ssl_set|store_result|stat|send_(query|long_data)|set_(charset|opt|local_infile_(default|handler))|\n stmt_(store_result|send_long_data|next_result|close|init|data_seek|prepare|execute|fetch|free_result|\n attr_(get|set)|result_metadata|reset|get_(result|warnings)|more_results|bind_(param|result))|\n select_db|slave_query|savepoint|next_result|change_user|character_set_name|connect|commit|\n client_encoding|close|thread_safe|init|options|(enable|disable)_(reads_from_master|rpl_parse)|\n dump_debug_info|debug|data_seek|use_result|ping|poll|param_count|prepare|escape_string|execute|\n embedded_server_(start|end)|kill|query|field_seek|free_result|autocommit|rollback|report|refresh|\n fetch(_(object|fields|field(_direct)?|assoc|all|array|row))?|rpl_(parse_enabled|probe|query_type)|\n release_savepoint|reap_async_query|real_(connect|escape_string|query)|more_results|multi_query|\n get_(charset|connection_stats|client_(stats|info|version)|cache_stats|warnings|links_stats|metadata)|\n master_query|bind_(param|result)|begin_transaction\n)\\b", - "name": "support.function.mysqli.php" - }, - { - "match": "(?i)\\bmysqlnd_memcache_(set|get_config)\\b", - "name": "support.function.mysqlnd-memcache.php" - }, - { - "match": "(?i)\\bmysqlnd_ms_(set_(user_pick_server|qos)|dump_servers|query_is_select|fabric_select_(shard|global)|get_(stats|last_(used_connection|gtid))|xa_(commit|rollback|gc|begin)|match_wild)\\b", - "name": "support.function.mysqlnd-ms.php" - }, - { - "match": "(?i)\\bmysqlnd_qc_(set_(storage_handler|cache_condition|is_select|user_handlers)|clear_cache|get_(normalized_query_trace_log|core_stats|cache_info|query_trace_log|available_handlers))\\b", - "name": "support.function.mysqlnd-qc.php" - }, - { - "match": "(?i)\\bmysqlnd_uh_(set_(statement|connection)_proxy|convert_to_mysqlnd)\\b", - "name": "support.function.mysqlnd-uh.php" - }, - { - "match": "(?xi)\\b\n(\n syslog|socket_(set_(blocking|timeout)|get_status)|set(raw)?cookie|http_response_code|openlog|\n headers_(list|sent)|header(_(register_callback|remove))?|checkdnsrr|closelog|inet_(ntop|pton)|ip2long|\n openlog|dns_(check_record|get_(record|mx))|define_syslog_variables|(p)?fsockopen|long2ip|\n get(servby(name|port)|host(name|by(name(l)?|addr))|protoby(name|number)|mxrr)\n)\\b", - "name": "support.function.network.php" - }, - { - "match": "(?i)\\bnsapi_(virtual|response_headers|request_headers)\\b", - "name": "support.function.nsapi.php" - }, - { - "match": "(?xi)\\b\n(\n oci(statementtype|setprefetch|serverversion|savelob(file)?|numcols|new(collection|cursor|descriptor)|nlogon|\n column(scale|size|name|type(raw)?|isnull|precision)|coll(size|trim|assign(elem)?|append|getelem|max)|commit|\n closelob|cancel|internaldebug|definebyname|plogon|parse|error|execute|fetch(statement|into)?|\n free(statement|collection|cursor|desc)|write(temporarylob|lobtofile)|loadlob|log(on|off)|rowcount|rollback|\n result|bindbyname)|\n oci_(statement_type|set_(client_(info|identifier)|prefetch|edition|action|module_name)|server_version|\n num_(fields|rows)|new_(connect|collection|cursor|descriptor)|connect|commit|client_version|close|cancel|\n internal_debug|define_by_name|pconnect|password_change|parse|error|execute|bind_(array_)?by_name|\n field_(scale|size|name|type(_raw)?|is_null|precision)|fetch(_(object|assoc|all|array|row))?|\n free_(statement|descriptor)|lob_(copy|is_equal)|rollback|result|get_implicit_resultset)\n)\\b", - "name": "support.function.oci8.php" - }, - { - "match": "(?i)\\bopcache_(compile_file|invalidate|reset|get_(status|configuration))\\b", - "name": "support.function.opcache.php" - }, - { - "match": "(?xi)\\b\nopenssl_(\n sign|spki_(new|export(_challenge)?|verify)|seal|csr_(sign|new|export(_to_file)?|get_(subject|public_key))|\n cipher_iv_length|open|dh_compute_key|digest|decrypt|public_(decrypt|encrypt)|encrypt|error_string|\n pkcs12_(export(_to_file)?|read)|pkcs7_(sign|decrypt|encrypt|verify)|verify|free_key|random_pseudo_bytes|\n pkey_(new|export(_to_file)?|free|get_(details|public|private))|private_(decrypt|encrypt)|pbkdf2|\n get_((cipher|md)_methods|cert_locations|(public|private)key)|\n x509_(check_private_key|checkpurpose|parse|export(_to_file)?|fingerprint|free|read)\n)\\b", - "name": "support.function.openssl.php" - }, - { - "match": "(?xi)\\b\n(\n output_(add_rewrite_var|reset_rewrite_vars)|flush|\n ob_(start|clean|implicit_flush|end_(clean|flush)|flush|list_handlers|gzhandler|\n get_(status|contents|clean|flush|length|level))\n)\\b", - "name": "support.function.output.php" - }, - { - "match": "(?i)\\bpassword_(hash|needs_rehash|verify|get_info)\\b", - "name": "support.function.password.php" - }, - { - "match": "(?xi)\\b\npcntl_(\n strerror|signal(_dispatch)?|sig(timedwait|procmask|waitinfo)|setpriority|errno|exec|fork|\n w(stopsig|termsig|if(stopped|signaled|exited))|wait(pid)?|alarm|getpriority|get_last_error\n)\\b", - "name": "support.function.pcntl.php" - }, - { - "match": "(?xi)\\b\npg_(\n socket|send_(prepare|execute|query(_params)?)|set_(client_encoding|error_verbosity)|select|host|\n num_(fields|rows)|consume_input|connection_(status|reset|busy)|connect(_poll)?|convert|copy_(from|to)|\n client_encoding|close|cancel_query|tty|transaction_status|trace|insert|options|delete|dbname|untrace|\n unescape_bytea|update|pconnect|ping|port|put_line|parameter_status|prepare|version|query(_params)?|\n escape_(string|identifier|literal|bytea)|end_copy|execute|flush|free_result|last_(notice|error|oid)|\n field_(size|num|name|type(_oid)?|table|is_null|prtlen)|affected_rows|result_(status|seek|error(_field)?)|\n fetch_(object|assoc|all(_columns)?|array|row|result)|get_(notify|pid|result)|meta_data|\n lo_(seek|close|create|tell|truncate|import|open|unlink|export|write|read(_all)?)|\n)\\b", - "name": "support.function.pgsql.php" - }, - { - "match": "(?i)\\b(virtual|getallheaders|apache_((get|set)env|note|child_terminate|lookup_uri|response_headers|reset_timeout|request_headers|get_(version|modules)))\\b", - "name": "support.function.php_apache.php" - }, - { - "match": "(?i)\\bdom_import_simplexml\\b", - "name": "support.function.php_dom.php" - }, - { - "match": "(?xi)\\b\nftp_(\n ssl_connect|systype|site|size|set_option|nlist|nb_(continue|f?(put|get))|ch(dir|mod)|connect|cdup|close|\n delete|put|pwd|pasv|exec|quit|f(put|get)|login|alloc|rename|raw(list)?|rmdir|get(_option)?|mdtm|mkdir\n)\\b", - "name": "support.function.php_ftp.php" - }, - { - "match": "(?xi)\\b\nimap_(\n (create|delete|list|rename|scan)(mailbox)?|status|sort|subscribe|set_quota|set(flag_full|acl)|search|savebody|\n num_(recent|msg)|check|close|clearflag_full|thread|timeout|open|header(info)?|headers|append|alerts|reopen|\n 8bit|unsubscribe|undelete|utf7_(decode|encode)|utf8|uid|ping|errors|expunge|qprint|gc|\n fetch(structure|header|text|mime|body)|fetch_overview|lsub|list(scan|subscribed)|last_error|\n rfc822_(parse_(headers|adrlist)|write_address)|get(subscribed|acl|mailboxes)|get_quota(root)?|\n msgno|mime_header_decode|mail_(copy|compose|move)|mail|mailboxmsginfo|binary|body(struct)?|base64\n)\\b", - "name": "support.function.php_imap.php" - }, - { - "match": "(?xi)\\b\nmssql_(\n select_db|num_(fields|rows)|next_result|connect|close|init|data_seek|pconnect|execute|query|\n field_(seek|name|type|length)|fetch_(object|field|assoc|array|row|batch)|free_(statement|result)|\n rows_affected|result|guid_string|get_last_message|min_(error|message)_severity|bind\n)\\b", - "name": "support.function.php_mssql.php" - }, - { - "match": "(?xi)\\b\nodbc_(\n statistics|specialcolumns|setoption|num_(fields|rows)|next_result|connect|columns|columnprivileges|commit|\n cursor|close(_all)?|tables|tableprivileges|do|data_source|pconnect|primarykeys|procedures|procedurecolumns|\n prepare|error(msg)?|exec(ute)?|field_(scale|num|name|type|precision|len)|foreignkeys|free_result|\n fetch_(into|object|array|row)|longreadlen|autocommit|rollback|result(_all)?|gettypeinfo|binmode\n)\\b", - "name": "support.function.php_odbc.php" - }, - { - "match": "(?i)\\bpreg_(split|quote|filter|last_error|replace(_callback)?|grep|match(_all)?)\\b", - "name": "support.function.php_pcre.php" - }, - { - "match": "(?i)\\b(spl_(classes|object_hash|autoload(_(call|unregister|extensions|functions|register))?)|class_(implements|uses|parents)|iterator_(count|to_array|apply))\\b", - "name": "support.function.php_spl.php" - }, - { - "match": "(?i)\\bzip_(close|open|entry_(name|compressionmethod|compressedsize|close|open|filesize|read)|read)\\b", - "name": "support.function.php_zip.php" - }, - { - "match": "(?xi)\\b\nposix_(\n strerror|set(s|e?u|[ep]?g)id|ctermid|ttyname|times|isatty|initgroups|uname|errno|kill|access|\n get(sid|cwd|uid|pid|ppid|pwnam|pwuid|pgid|pgrp|euid|egid|login|rlimit|gid|grnam|groups|grgid)|\n get_last_error|mknod|mkfifo\n)\\b", - "name": "support.function.posix.php" - }, - { - "match": "(?i)\\bset(thread|proc)title\\b", - "name": "support.function.proctitle.php" - }, - { - "match": "(?xi)\\b\npspell_(\n store_replacement|suggest|save_wordlist|new(_(config|personal))?|check|clear_session|\n config_(save_repl|create|ignore|(data|dict)_dir|personal|runtogether|repl|mode)|add_to_(session|personal)\n)\\b", - "name": "support.function.pspell.php" - }, - { - "match": "(?i)\\breadline(_(completion_function|clear_history|callback_(handler_(install|remove)|read_char)|info|on_new_line|write_history|list_history|add_history|redisplay|read_history))?\\b", - "name": "support.function.readline.php" - }, - { - "match": "(?i)\\brecode(_(string|file))?\\b", - "name": "support.function.recode.php" - }, - { - "match": "(?i)\\brrd(c_disconnect|_(create|tune|info|update|error|version|first|fetch|last(update)?|restore|graph|xport))\\b", - "name": "support.function.rrd.php" - }, - { - "match": "(?xi)\\b\n(\n shm_((get|has|remove|put)_var|detach|attach|remove)|sem_(acquire|release|remove|get)|ftok|\n msg_((get|remove|set|stat)_queue|send|queue_exists|receive)\n)\\b", - "name": "support.function.sem.php" - }, - { - "match": "(?xi)\\b\nsession_(\n status|start|set_(save_handler|cookie_params)|save_path|name|commit|cache_(expire|limiter)|\n is_registered|id|destroy|decode|unset|unregister|encode|write_close|abort|reset|register(_shutdown)?|\n regenerate_id|get_cookie_params|module_name\n)\\b", - "name": "support.function.session.php" - }, - { - "match": "(?i)\\bshmop_(size|close|open|delete|write|read)\\b", - "name": "support.function.shmop.php" - }, - { - "match": "(?i)\\bsimplexml_(import_dom|load_(string|file))\\b", - "name": "support.function.simplexml.php" - }, - { - "match": "(?xi)\\b\n(\n snmp(walk(oid)?|realwalk|get(next)?|set)|\n snmp_(set_(valueretrieval|quick_print|enum_print|oid_(numeric_print|output_format))|read_mib|\n get_(valueretrieval|quick_print))|\n snmp[23]_(set|walk|real_walk|get(next)?)\n)\\b", - "name": "support.function.snmp.php" - }, - { - "match": "(?i)\\b(is_soap_fault|use_soap_error_handler)\\b", - "name": "support.function.soap.php" - }, - { - "match": "(?xi)\\b\nsocket_(\n shutdown|strerror|send(to|msg)?|set_((non)?block|option)|select|connect|close|clear_error|bind|\n create(_(pair|listen))?|cmsg_space|import_stream|write|listen|last_error|accept|recv(from|msg)?|\n read|get(peer|sock)name|get_option\n)\\b", - "name": "support.function.sockets.php" - }, - { - "match": "(?xi)\\b\nsqlite_(\n single_query|seek|has_(more|prev)|num_(fields|rows)|next|changes|column|current|close|\n create_(aggregate|function)|open|unbuffered_query|udf_(decode|encode)_binary|popen|prev|\n escape_string|error_string|exec|valid|key|query|field_name|factory|\n fetch_(string|single|column_types|object|all|array)|lib(encoding|version)|\n last_(insert_rowid|error)|array_query|rewind|busy_timeout\n)\\b", - "name": "support.function.sqlite.php" - }, - { - "match": "(?xi)\\b\nsqlsrv_(\n send_stream_data|server_info|has_rows|num_(fields|rows)|next_result|connect|configure|commit|\n client_info|close|cancel|prepare|errors|execute|query|field_metadata|fetch(_(array|object))?|\n free_stmt|rows_affected|rollback|get_(config|field)|begin_transaction\n)\\b", - "name": "support.function.sqlsrv.php" - }, - { - "match": "(?xi)\\b\nstats_(\n harmonic_mean|covariance|standard_deviation|skew|\n cdf_(noncentral_(chisquare|f)|negative_binomial|chisquare|cauchy|t|uniform|poisson|exponential|f|weibull|\n logistic|laplace|gamma|binomial|beta)|\n stat_(noncentral_t|correlation|innerproduct|independent_t|powersum|percentile|paired_t|gennch|binomial_coef)|\n dens_(normal|negative_binomial|chisquare|cauchy|t|pmf_(hypergeometric|poisson|binomial)|exponential|f|\n weibull|logistic|laplace|gamma|beta)|\n den_uniform|variance|kurtosis|absolute_deviation|\n rand_(setall|phrase_to_seeds|ranf|get_seeds|\n gen_(noncentral_[ft]|noncenral_chisquare|normal|chisquare|t|int|\n i(uniform|poisson|binomial(_negative)?)|exponential|f(uniform)?|gamma|beta))\n)\\b", - "name": "support.function.stats.php" - }, - { - "match": "(?xi)\\b\n(\n set_socket_blocking|\n stream_(socket_(shutdown|sendto|server|client|pair|enable_crypto|accept|recvfrom|get_name)|\n set_(chunk_size|timeout|(read|write)_buffer|blocking)|select|notification_callback|supports_lock|\n context_(set_(option|default|params)|create|get_(options|default|params))|copy_to_stream|is_local|\n encoding|filter_(append|prepend|register|remove)|wrapper_((un)?register|restore)|\n resolve_include_path|register_wrapper|get_(contents|transports|filters|wrappers|line|meta_data)|\n bucket_(new|prepend|append|make_writeable)\n )\n)\\b", - "name": "support.function.streamsfuncs.php" - }, - { - "match": "(?xi)\\b\n(\n money_format|md5(_file)?|metaphone|bin2hex|sscanf|sha1(_file)?|\n str(str|c?spn|n(at)?(case)?cmp|chr|coll|(case)?cmp|to(upper|lower)|tok|tr|istr|pos|pbrk|len|rchr|ri?pos|rev)|\n str_(getcsv|ireplace|pad|repeat|replace|rot13|shuffle|split|word_count)|\n strip(c?slashes|os)|strip_tags|similar_text|soundex|substr(_(count|compare|replace))?|setlocale|\n html(specialchars(_decode)?|entities)|html_entity_decode|hex2bin|hebrev(c)?|number_format|nl2br|nl_langinfo|\n chop|chunk_split|chr|convert_(cyr_string|uu(decode|encode))|count_chars|crypt|crc32|trim|implode|ord|\n uc(first|words)|join|parse_str|print(f)?|echo|explode|v?[fs]?printf|quoted_printable_(decode|encode)|\n quotemeta|wordwrap|lcfirst|[lr]trim|localeconv|levenshtein|addc?slashes|get_html_translation_table\n)\\b", - "name": "support.function.string.php" - }, - { - "match": "(?xi)\\b\nsybase_(\n set_message_handler|select_db|num_(fields|rows)|connect|close|deadlock_retry_count|data_seek|\n unbuffered_query|pconnect|query|field_seek|fetch_(object|field|assoc|array|row)|free_result|\n affected_rows|result|get_last_message|min_(client|error|message|server)_severity\n)\\b", - "name": "support.function.sybase.php" - }, - { - "match": "(?i)\\b(taint|is_tainted|untaint)\\b", - "name": "support.function.taint.php" - }, - { - "match": "(?xi)\\b\n(\n tidy_((get|set)opt|set_encoding|save_config|config_count|clean_repair|is_(xhtml|xml)|diagnose|\n (access|error|warning)_count|load_config|reset_config|(parse|repair)_(string|file)|\n get_(status|html(_ver)?|head|config|output|opt_doc|root|release|body))|\n ob_tidyhandler\n)\\b", - "name": "support.function.tidy.php" - }, - { - "match": "(?i)\\btoken_(name|get_all)\\b", - "name": "support.function.tokenizer.php" - }, - { - "match": "(?xi)\\b\ntrader_(\n stoch(f|r|rsi)?|stddev|sin(h)?|sum|sub|set_(compat|unstable_period)|sqrt|sar(ext)?|sma|\n ht_(sine|trend(line|mode)|dc(period|phase)|phasor)|natr|cci|cos(h)?|correl|\n cdl(shootingstar|shortline|sticksandwich|stalledpattern|spinningtop|separatinglines|\n hikkake(mod)?|highwave|homingpigeon|hangingman|harami(cross)?|hammer|concealbabyswall|\n counterattack|closingmarubozu|thrusting|tasukigap|takuri|tristar|inneck|invertedhammer|\n identical3crows|2crows|onneck|doji(star)?|darkcloudcover|dragonflydoji|unique3river|\n upsidegap2crows|3(starsinsouth|inside|outside|whitesoldiers|linestrike|blackcrows)|\n piercing|engulfing|evening(doji)?star|kicking(bylength)?|longline|longleggeddoji|\n ladderbottom|advanceblock|abandonedbaby|risefall3methods|rickshawman|gapsidesidewhite|\n gravestonedoji|xsidegap3methods|morning(doji)?star|mathold|matchinglow|marubozu|\n belthold|breakaway)|\n ceil|cmo|tsf|typprice|t3|tema|tan(h)?|trix|trima|trange|obv|div|dema|dx|ultosc|ppo|\n plus_d[im]|errno|exp|ema|var|kama|floor|wclprice|willr|wma|ln|log10|bop|beta|bbands|\n linearreg(_(slope|intercept|angle))?|asin|acos|atan|atr|adosc|ad|add|adx(r)?|apo|avgprice|\n aroon(osc)?|rsi|roc|rocp|rocr(100)?|get_(compat|unstable_period)|min(index)?|minus_d[im]|\n minmax(index)?|mid(point|price)|mom|mult|medprice|mfi|macd(ext|fix)?|mavp|max(index)?|ma(ma)?\n)\\b", - "name": "support.function.trader.php" - }, - { - "match": "(?i)\\buopz_(copy|compose|implement|overload|delete|undefine|extend|function|flags|restore|rename|redefine|backup)\\b", - "name": "support.function.uopz.php" - }, - { - "match": "(?i)\\b(http_build_query|(raw)?url(decode|encode)|parse_url|get_(headers|meta_tags)|base64_(decode|encode))\\b", - "name": "support.function.url.php" - }, - { - "match": "(?xi)\\b\n(\n strval|settype|serialize|(bool|double|float)val|debug_zval_dump|intval|import_request_variables|isset|\n is_(scalar|string|null|numeric|callable|int(eger)?|object|double|float|long|array|resource|real|bool)|\n unset|unserialize|print_r|empty|var_(dump|export)|gettype|get_(defined_vars|resource_type)\n)\\b", - "name": "support.function.var.php" - }, - { - "match": "(?i)\\bwddx_(serialize_(value|vars)|deserialize|packet_(start|end)|add_vars)\\b", - "name": "support.function.wddx.php" - }, - { - "match": "(?i)\\bxhprof_(sample_)?(disable|enable)\\b", - "name": "support.function.xhprof.php" - }, - { - "match": "(?xi)\n\\b\n(\n utf8_(decode|encode)|\n xml_(set_((notation|(end|start)_namespace|unparsed_entity)_decl_handler|\n (character_data|default|element|external_entity_ref|processing_instruction)_handler|object)|\n parse(_into_struct)?|parser_((get|set)_option|create(_ns)?|free)|error_string|\n get_(current_((column|line)_number|byte_index)|error_code))\n)\\b", - "name": "support.function.xml.php" - }, - { - "match": "(?xi)\\b\nxmlrpc_(\n server_(call_method|create|destroy|add_introspection_data|register_(introspection_callback|method))|\n is_fault|decode(_request)?|parse_method_descriptions|encode(_request)?|(get|set)_type\n)\\b", - "name": "support.function.xmlrpc.php" - }, - { - "match": "(?xi)\\b\nxmlwriter_(\n (end|start|write)_(comment|cdata|dtd(_(attlist|entity|element))?|document|pi|attribute|element)|\n (start|write)_(attribute|element)_ns|write_raw|set_indent(_string)?|text|output_memory|open_(memory|uri)|\n full_end_element|flush|\n)\\b", - "name": "support.function.xmlwriter.php" - }, - { - "match": "(?xi)\\b\n(\n zlib_(decode|encode|get_coding_type)|readgzfile|\n gz(seek|compress|close|tell|inflate|open|decode|deflate|uncompress|puts|passthru|encode|eof|file|\n write|rewind|read|getc|getss?)\n)\\b", - "name": "support.function.zlib.php" - }, - { - "match": "(?i)\\bis_int(eger)?\\b", - "name": "support.function.alias.php" - } - ] - }, - "switch_statement": { - "patterns": [ - { - "match": "\\s+(?=switch\\b)" - }, - { - "begin": "\\bswitch\\b(?!\\s*\\(.*\\)\\s*:)", - "beginCaptures": { - "0": { - "name": "keyword.control.switch.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.section.switch-block.end.bracket.curly.php" - } - }, - "name": "meta.switch-statement.php", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.switch-expression.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.switch-expression.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.section.switch-block.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - } - ] - }, - "match_statement": { - "patterns": [ - { - "match": "\\s+(?=match\\b)" - }, - { - "begin": "\\bmatch\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.match.php" - } - }, - "end": "}|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.section.match-block.end.bracket.curly.php" - } - }, - "name": "meta.match-statement.php", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.match-expression.begin.bracket.round.php" - } - }, - "end": "\\)|(?=\\?>)", - "endCaptures": { - "0": { - "name": "punctuation.definition.match-expression.end.bracket.round.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.section.match-block.begin.bracket.curly.php" - } - }, - "end": "(?=}|\\?>)", - "patterns": [ - { - "match": "=>", - "name": "keyword.definition.arrow.php" - }, - { - "include": "$self" - } - ] - } - ] - } - ] - }, - "use-inner": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?i)\\b(as)\\s+", - "beginCaptures": { - "1": { - "name": "keyword.other.use-as.php" - } - }, - "end": "(?i)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "endCaptures": { - "0": { - "name": "entity.other.alias.php" - } - } - }, - { - "include": "#class-name" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.php" - } - ] - }, - "var_basic": { - "patterns": [ - { - "match": "(?i)(\\$+)[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*", - "name": "variable.other.php", - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - } - } - ] - }, - "var_global": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((_(COOKIE|FILES|GET|POST|REQUEST))|arg(v|c))\\b", - "name": "variable.other.global.php" - }, - "var_global_safer": { - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(\\$)((GLOBALS|_(ENV|SERVER|SESSION)))", - "name": "variable.other.global.safer.php" - }, - "var_language": { - "match": "(\\$)this\\b", - "name": "variable.language.this.php", - "captures": { - "1": { - "name": "punctuation.definition.variable.php" - } - } - }, - "variable-name": { - "patterns": [ - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "keyword.operator.class.php" - }, - "5": { - "name": "variable.other.property.php" - }, - "6": { - "name": "punctuation.section.array.begin.php" - }, - "7": { - "name": "constant.numeric.index.php" - }, - "8": { - "name": "variable.other.index.php" - }, - "9": { - "name": "punctuation.definition.variable.php" - }, - "10": { - "name": "string.unquoted.index.php" - }, - "11": { - "name": "punctuation.section.array.end.php" - } - }, - "match": "(?xi)\n((\\$)(?<name>[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*))\\s*\n(?:\n (\\??->)\\s*(\\g<name>)\n |\n (\\[)(?:(\\d+)|((\\$)\\g<name>)|([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*))(\\])\n)?" - }, - { - "captures": { - "1": { - "name": "variable.other.php" - }, - "2": { - "name": "punctuation.definition.variable.php" - }, - "4": { - "name": "punctuation.definition.variable.php" - } - }, - "match": "(?i)((\\${)(?<name>[a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)(}))" - } - ] - }, - "variables": { - "patterns": [ - { - "include": "#var_language" - }, - { - "include": "#var_global" - }, - { - "include": "#var_global_safer" - }, - { - "include": "#var_basic" - }, - { - "begin": "\\${(?=.*?})", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.php" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "ternary_shorthand": { - "match": "\\?:", - "name": "keyword.operator.ternary.php" - }, - "ternary_expression": { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "keyword.operator.ternary.php" - } - }, - "end": "(?<!:):(?!:)", - "endCaptures": { - "0": { - "name": "keyword.operator.ternary.php" - } - }, - "patterns": [ - { - "match": "(?i)^\\s*([a-z_\\x{7f}-\\x{7fffffff}][a-z0-9_\\x{7f}-\\x{7fffffff}]*)\\s*(?=:(?!:))", - "captures": { - "1": { - "patterns": [ - { - "include": "$self" - } - ] - } - } - }, - { - "include": "$self" - } - ] - }, - "null_coalescing": { - "match": "\\?\\?", - "name": "keyword.operator.null-coalescing.php" - } - } -} \ No newline at end of file diff --git a/extensions/php/test/colorize-fixtures/issue-28354.php b/extensions/php/test/colorize-fixtures/issue-28354.php deleted file mode 100644 index a6fce36cda8..00000000000 --- a/extensions/php/test/colorize-fixtures/issue-28354.php +++ /dev/null @@ -1,9 +0,0 @@ -<script> - ... - <?php - foreach($actID AS $act) { - echo 'divNames.push(\'[nid='.$act.']\');'; - } - ?> - ... -</script> \ No newline at end of file diff --git a/extensions/php/test/colorize-fixtures/issue-76997.php b/extensions/php/test/colorize-fixtures/issue-76997.php deleted file mode 100644 index 2aedec98999..00000000000 --- a/extensions/php/test/colorize-fixtures/issue-76997.php +++ /dev/null @@ -1 +0,0 @@ -<hello></hello> diff --git a/extensions/php/test/colorize-fixtures/test.php b/extensions/php/test/colorize-fixtures/test.php deleted file mode 100644 index b7d9578dcac..00000000000 --- a/extensions/php/test/colorize-fixtures/test.php +++ /dev/null @@ -1,48 +0,0 @@ -<html> -<head> - <title>Example page - - - - -"); - - // display shuffled cards (EXAMPLE ONLY) - for ($index = 0; $index < 52; $index++) { - if ($starting_point == 52) { $starting_point = 0; } - print("Uncut Point: $deck[$index] "); - $starting_point++; - } - - function foo bar(){} -?> - - - diff --git a/extensions/php/test/colorize-results/issue-28354_php.json b/extensions/php/test/colorize-results/issue-28354_php.json deleted file mode 100644 index eb36ede3a4e..00000000000 --- a/extensions/php/test/colorize-results/issue-28354_php.json +++ /dev/null @@ -1,541 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.php meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.php meta.embedded.block.html meta.tag.metadata.script.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.embedded.block.html meta.tag.metadata.script.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "...", - "t": "text.html.php meta.embedded.block.html source.js keyword.operator.spread.js", - "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" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.php meta.embedded.block.html source.js meta.embedded.block.php punctuation.section.embedded.end.php", - "r": { - "dark_plus": "punctuation.section.embedded.end.php: #569CD6", - "light_plus": "punctuation.section.embedded.end.php: #800000", - "dark_vs": "punctuation.section.embedded.end.php: #569CD6", - "light_vs": "punctuation.section.embedded.end.php: #800000", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.html source.js", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "...", - "t": "text.html.php meta.embedded.block.html source.js keyword.operator.spread.js", - "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" - } - }, - { - "c": "<", - "t": "text.html.php meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html source.js-ignored-vscode", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "/", - "t": "text.html.php meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "script", - "t": "text.html.php meta.embedded.block.html meta.tag.metadata.script.end.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.embedded.block.html meta.tag.metadata.script.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/php/test/colorize-results/issue-76997_php.json b/extensions/php/test/colorize-results/issue-76997_php.json deleted file mode 100644 index c6863dda6fb..00000000000 --- a/extensions/php/test/colorize-results/issue-76997_php.json +++ /dev/null @@ -1,68 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.php meta.tag.other.unrecognized.html.derivative punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "hello", - "t": "text.html.php meta.tag.other.unrecognized.html.derivative entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.tag.other.unrecognized.html.derivative punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.php meta.tag.other.unrecognized.html.derivative punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/php/test/colorize-results/test_php.json b/extensions/php/test/colorize-results/test_php.json deleted file mode 100644 index 62c1b712679..00000000000 --- a/extensions/php/test/colorize-results/test_php.json +++ /dev/null @@ -1,3632 +0,0 @@ -[ - { - "c": "<", - "t": "text.html.php meta.tag.structure.html.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "html", - "t": "text.html.php meta.tag.structure.html.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.tag.structure.html.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.php meta.tag.structure.head.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "head", - "t": "text.html.php meta.tag.structure.head.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.tag.structure.head.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t", - "t": "text.html.php", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.php meta.tag.metadata.title.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "title", - "t": "text.html.php meta.tag.metadata.title.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.tag.metadata.title.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Example page", - "t": "text.html.php", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.php meta.tag.metadata.title.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.php meta.tag.structure.head.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.php meta.tag.structure.body.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "body", - "t": "text.html.php meta.tag.structure.body.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.tag.structure.body.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php punctuation.definition.string.end.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php punctuation.definition.arguments.end.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.php meta.embedded.block.php source.php punctuation.terminator.expression.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t", - "t": "text.html.php meta.embedded.block.php source.php punctuation.whitespace.comment.leading.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "//", - "t": "text.html.php meta.embedded.block.php source.php comment.line.double-slash.php punctuation.definition.comment.php", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " display shuffled cards (EXAMPLE ONLY)", - "t": "text.html.php meta.embedded.block.php source.php comment.line.double-slash.php", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "for", - "t": "text.html.php meta.embedded.block.php source.php keyword.control.for.php", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "(", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.begin.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "index", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.php meta.embedded.block.php source.php keyword.operator.assignment.php", - "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" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "0", - "t": "text.html.php meta.embedded.block.php source.php constant.numeric.decimal.php", - "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" - } - }, - { - "c": ";", - "t": "text.html.php meta.embedded.block.php source.php punctuation.terminator.expression.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "index", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.php meta.embedded.block.php source.php keyword.operator.comparison.php", - "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" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "52", - "t": "text.html.php meta.embedded.block.php source.php constant.numeric.decimal.php", - "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" - } - }, - { - "c": ";", - "t": "text.html.php meta.embedded.block.php source.php punctuation.terminator.expression.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "index", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "text.html.php meta.embedded.block.php source.php keyword.operator.increment-decrement.php", - "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" - } - }, - { - "c": ")", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.end.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.begin.bracket.curly.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "if", - "t": "text.html.php meta.embedded.block.php source.php keyword.control.if.php", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "(", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.begin.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "starting_point", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "==", - "t": "text.html.php meta.embedded.block.php source.php keyword.operator.comparison.php", - "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" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "52", - "t": "text.html.php meta.embedded.block.php source.php constant.numeric.decimal.php", - "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" - } - }, - { - "c": ")", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.end.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.begin.bracket.curly.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "starting_point", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.php meta.embedded.block.php source.php keyword.operator.assignment.php", - "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" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "0", - "t": "text.html.php meta.embedded.block.php source.php constant.numeric.decimal.php", - "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" - } - }, - { - "c": ";", - "t": "text.html.php meta.embedded.block.php source.php punctuation.terminator.expression.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.end.bracket.curly.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "print", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php support.function.construct.output.php", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php punctuation.definition.arguments.begin.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php punctuation.definition.string.begin.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Uncut Point: ", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php variable.other.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "deck", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php variable.other.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php punctuation.section.array.begin.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php variable.other.index.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "index", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php variable.other.index.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "]", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php punctuation.section.array.end.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php string.quoted.double.php punctuation.definition.string.end.php", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.php meta.embedded.block.php source.php meta.function-call.php punctuation.definition.arguments.end.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.php meta.embedded.block.php source.php punctuation.terminator.expression.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "$", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php punctuation.definition.variable.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "starting_point", - "t": "text.html.php meta.embedded.block.php source.php variable.other.php", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "text.html.php meta.embedded.block.php source.php keyword.operator.increment-decrement.php", - "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" - } - }, - { - "c": ";", - "t": "text.html.php meta.embedded.block.php source.php punctuation.terminator.expression.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.end.bracket.curly.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "\t", - "t": "text.html.php meta.embedded.block.php source.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "function", - "t": "text.html.php meta.embedded.block.php source.php meta.function.php storage.type.function.php", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.php meta.embedded.block.php source.php meta.function.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "foo bar", - "t": "text.html.php meta.embedded.block.php source.php meta.function.php entity.name.function.php", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.php meta.embedded.block.php source.php meta.function.php punctuation.definition.parameters.begin.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": ")", - "t": "text.html.php meta.embedded.block.php source.php meta.function.php punctuation.definition.parameters.end.bracket.round.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.begin.bracket.curly.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.php meta.embedded.block.php source.php punctuation.definition.end.bracket.curly.php", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "?", - "t": "text.html.php meta.embedded.block.php punctuation.section.embedded.end.php source.php", - "r": { - "dark_plus": "punctuation.section.embedded.end.php: #569CD6", - "light_plus": "punctuation.section.embedded.end.php: #800000", - "dark_vs": "punctuation.section.embedded.end.php: #569CD6", - "light_vs": "punctuation.section.embedded.end.php: #800000", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.php meta.embedded.block.php punctuation.section.embedded.end.php", - "r": { - "dark_plus": "punctuation.section.embedded.end.php: #569CD6", - "light_plus": "punctuation.section.embedded.end.php: #800000", - "dark_vs": "punctuation.section.embedded.end.php: #569CD6", - "light_vs": "punctuation.section.embedded.end.php: #800000", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "", - "t": "text.html.php meta.tag.structure.body.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.php meta.tag.structure.html.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] diff --git a/extensions/powershell/.vscodeignore b/extensions/powershell/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/powershell/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/powershell/cgmanifest.json b/extensions/powershell/cgmanifest.json deleted file mode 100644 index 04444f36174..00000000000 --- a/extensions/powershell/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "PowerShell/EditorSyntax", - "repositoryUrl": "https://github.com/PowerShell/EditorSyntax", - "commitHash": "d10ae29c0d3ceb248172c383a159ae43b9ccfb4d" - } - }, - "license": "MIT", - "version": "1.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/powershell/language-configuration.json b/extensions/powershell/language-configuration.json deleted file mode 100644 index 719b5f81b52..00000000000 --- a/extensions/powershell/language-configuration.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "comments": { - "lineComment": "#", - "blockComment": [ "<#", "#>" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "@'", "close": "\n'@", "notIn": ["string", "comment"]}, - { "open": "@\"", "close": "\n\"@", "notIn": ["string", "comment"]}, - { "open": "\"", "close": "\"", "notIn": ["string"]}, - { "open": "'", "close": "'", "notIn": ["string", "comment"]}, - ["<#", "#>"] - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ], - "folding": { - "markers": { - "start": "^\\s*#[rR]egion\\b", - "end": "^\\s*#[eE]nd[rR]egion\\b" - } - } -} diff --git a/extensions/powershell/package.json b/extensions/powershell/package.json deleted file mode 100644 index fb45b704b85..00000000000 --- a/extensions/powershell/package.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "name": "powershell", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "contributes": { - "languages": [{ - "id": "powershell", - "extensions": [ ".ps1", ".psm1", ".psd1", ".pssc", ".psrc" ], - "aliases": [ "PowerShell", "powershell", "ps", "ps1" ], - "firstLine": "^#!\\s*/.*\\bpwsh\\b", - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "powershell", - "scopeName": "source.powershell", - "path": "./syntaxes/powershell.tmLanguage.json" - }], - "snippets": [{ - "language": "powershell", - "path": "./snippets/powershell.code-snippets" - }] - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js PowerShell/EditorSyntax PowerShellSyntax.tmLanguage ./syntaxes/powershell.tmLanguage.json" - } -} diff --git a/extensions/powershell/package.nls.json b/extensions/powershell/package.nls.json deleted file mode 100644 index b54b734e599..00000000000 --- a/extensions/powershell/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Powershell Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in Powershell files." -} \ No newline at end of file diff --git a/extensions/powershell/snippets/powershell.code-snippets b/extensions/powershell/snippets/powershell.code-snippets deleted file mode 100644 index 5ad4bfca6c1..00000000000 --- a/extensions/powershell/snippets/powershell.code-snippets +++ /dev/null @@ -1,16 +0,0 @@ -{ - "Region Start": { - "prefix": "#region", - "body": [ - "#region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "#endregion" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/powershell/syntaxes/powershell.tmLanguage.json b/extensions/powershell/syntaxes/powershell.tmLanguage.json deleted file mode 100644 index de473e19fb8..00000000000 --- a/extensions/powershell/syntaxes/powershell.tmLanguage.json +++ /dev/null @@ -1,1007 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/PowerShell/EditorSyntax/blob/master/PowerShellSyntax.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/PowerShell/EditorSyntax/commit/d10ae29c0d3ceb248172c383a159ae43b9ccfb4d", - "name": "PowerShell", - "scopeName": "source.powershell", - "patterns": [ - { - "begin": "<#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.block.begin.powershell" - } - }, - "end": "#>", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.block.end.powershell" - } - }, - "name": "comment.block.powershell", - "patterns": [ - { - "include": "#commentEmbeddedDocs" - } - ] - }, - { - "match": "[2-6]>&1|>>|>|<<|<|>|>\\||[1-6]>|[1-6]>>", - "name": "keyword.operator.redirection.powershell" - }, - { - "include": "#commands" - }, - { - "include": "#commentLine" - }, - { - "include": "#variable" - }, - { - "include": "#interpolatedStringContent" - }, - { - "include": "#function" - }, - { - "include": "#attribute" - }, - { - "include": "#UsingDirective" - }, - { - "include": "#type" - }, - { - "include": "#hashtable" - }, - { - "include": "#doubleQuotedString" - }, - { - "include": "#scriptblock" - }, - { - "comment": "Needed to parse stuff correctly in 'argument mode'. (See about_parsing.)", - "include": "#doubleQuotedStringEscapes" - }, - { - "begin": "(?{1,5})}", - "name": "constant.character.escape.powershell" - }, - { - "match": "`u(?:\\{[0-9a-fA-F]{,6}.)?", - "name": "invalid.character.escape.powershell" - } - ] - }, - "function": { - "begin": "^(?:\\s*+)(?i)(function|filter|configuration|workflow)\\s+(?:(global|local|script|private):)?((?:\\p{L}|\\d|_|-|\\.)+)", - "beginCaptures": { - "0": { - "name": "meta.function.powershell" - }, - "1": { - "name": "storage.type.powershell" - }, - "2": { - "name": "storage.modifier.scope.powershell" - }, - "3": { - "name": "entity.name.function.powershell" - } - }, - "end": "(?=\\{|\\()", - "patterns": [ - { - "include": "#commentLine" - } - ] - }, - "interpolatedStringContent": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.group.begin.powershell" - } - }, - "contentName": "interpolated.simple.source.powershell", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.powershell" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "include": "#interpolation" - }, - { - "include": "#interpolatedStringContent" - } - ] - }, - "interpolation": { - "begin": "(\\$)(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.variable.powershell" - }, - "2": { - "name": "punctuation.section.group.begin.powershell" - } - }, - "contentName": "interpolated.complex.source.powershell", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.group.end.powershell" - } - }, - "patterns": [ - { - "include": "$self" - }, - { - "include": "#interpolation" - }, - { - "include": "#interpolatedStringContent" - } - ] - }, - "numericConstant": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.numeric.hex.powershell" - }, - "2": { - "name": "keyword.other.powershell" - } - }, - "match": "(? \ No newline at end of file diff --git a/extensions/powershell/test/colorize-fixtures/test.ps1 b/extensions/powershell/test/colorize-fixtures/test.ps1 deleted file mode 100644 index 8f524fe823a..00000000000 --- a/extensions/powershell/test/colorize-fixtures/test.ps1 +++ /dev/null @@ -1,43 +0,0 @@ -# Copyright Microsoft Corporation - -function Test-IsAdmin() { - try { - $identity = [Security.Principal.WindowsIdentity]::GetCurrent() - $principal = New-Object Security.Principal.WindowsPrincipal -ArgumentList $identity - return $principal.IsInRole( [Security.Principal.WindowsBuiltInRole]::Administrator ) - } catch { - throw "Failed to determine if the current user has elevated privileges. The error was: '{0}'." -f $_ - } -} - -function Invoke-Environment() -{ - param - ( - [Parameter(Mandatory=1)][string]$Command - ) - - foreach($_ in cmd /c "$Command 2>&1 & set") { - if ($_ -match '^([^=]+)=(.*)') { - [System.Environment]::SetEnvironmentVariable($matches[1], $matches[2]) - } - } -} -Write-Host -Object 'Initializing Azure PowerShell environment...'; - -# PowerShell commands need elevation for dependencies installation and running tests -if (!(Test-IsAdmin)){ - Write-Host -Object 'Please launch command under administrator account. It is needed for environment setting up and unit test.' -ForegroundColor Red; -} - -$env:AzurePSRoot = Split-Path -Parent -Path $env:AzurePSRoot; - -if (Test-Path -Path "$env:ADXSDKProgramFiles\Microsoft Visual Studio 12.0") { - $vsVersion="12.0" -} else { - $vsVersion="11.0" -} - -$setVSEnv = '"{0}\Microsoft Visual Studio {1}\VC\vcvarsall.bat" x64' -f $env:ADXSDKProgramFiles, $vsVersion; - -Invoke-Environment -Command $setVSEnv; \ No newline at end of file diff --git a/extensions/powershell/test/colorize-results/test-freeze-56476_ps1.json b/extensions/powershell/test/colorize-results/test-freeze-56476_ps1.json deleted file mode 100644 index 0d75904fdaf..00000000000 --- a/extensions/powershell/test/colorize-results/test-freeze-56476_ps1.json +++ /dev/null @@ -1,35 +0,0 @@ -[ - { - "c": "<#", - "t": "source.powershell comment.block.powershell punctuation.definition.comment.block.begin.powershell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " .", - "t": "source.powershell comment.block.powershell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#>", - "t": "source.powershell comment.block.powershell punctuation.definition.comment.block.end.powershell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - } -] \ No newline at end of file diff --git a/extensions/powershell/test/colorize-results/test_ps1.json b/extensions/powershell/test/colorize-results/test_ps1.json deleted file mode 100644 index d12f004fb9f..00000000000 --- a/extensions/powershell/test/colorize-results/test_ps1.json +++ /dev/null @@ -1,2895 +0,0 @@ -[ - { - "c": "#", - "t": "source.powershell comment.line.powershell punctuation.definition.comment.powershell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Copyright Microsoft Corporation", - "t": "source.powershell comment.line.powershell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "function", - "t": "source.powershell meta.function.powershell storage.type.powershell", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.powershell meta.function.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Test-IsAdmin", - "t": "source.powershell meta.function.powershell entity.name.function.powershell", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "try", - "t": "source.powershell meta.scriptblock.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "identity", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.bracket.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Security.Principal.WindowsIdentity", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell storage.type.powershell", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "]", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.bracket.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::GetCurrent", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "principal", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "New-Object", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.function.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " Security.Principal.WindowsPrincipal ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "ArgumentList ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "identity", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "principal", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".IsInRole", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell variable.other.readwrite.powershell variable.other.member.powershell", - "r": { - "dark_plus": "source.powershell variable.other.member: #DCDCAA", - "light_plus": "source.powershell variable.other.member: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "source.powershell variable.other.member: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Security.Principal.WindowsBuiltInRole", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell storage.type.powershell", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "]", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::Administrator ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "catch", - "t": "source.powershell meta.scriptblock.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "throw", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell string.quoted.double.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Failed to determine if the current user has elevated privileges. The error was: '{0}'.", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell string.quoted.double.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell string.quoted.double.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-f", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell keyword.operator.string-format.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell support.variable.automatic.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "function", - "t": "source.powershell meta.function.powershell storage.type.powershell", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.powershell meta.function.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Invoke-Environment", - "t": "source.powershell meta.function.powershell entity.name.function.powershell", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "param", - "t": "source.powershell meta.scriptblock.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell punctuation.section.bracket.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Parameter", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell support.function.attribute.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Mandatory", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell variable.parameter.attribute.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "1", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell constant.numeric.integer.powershell", - "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" - } - }, - { - "c": ")", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell meta.attribute.powershell punctuation.section.bracket.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "string", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell storage.type.powershell", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "]", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "Command", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foreach", - "t": "source.powershell meta.scriptblock.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " cmd ", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "c ", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.double.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.double.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "Command", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.double.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " 2>&1 & set", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.double.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.double.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "_", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-match", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell keyword.operator.comparison.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.single.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "^([^=]+)=(.*)", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.single.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell string.quoted.single.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.bracket.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "System.Environment", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell storage.type.powershell", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "]", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.bracket.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::SetEnvironmentVariable", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "matches", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell constant.numeric.integer.powershell", - "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" - } - }, - { - "c": "]", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell keyword.operator.other.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "matches", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell support.variable.automatic.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell constant.numeric.integer.powershell", - "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" - } - }, - { - "c": "]", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell interpolated.simple.source.powershell punctuation.section.bracket.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Write-Host", - "t": "source.powershell support.function.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "Object ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.powershell string.quoted.single.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Initializing Azure PowerShell environment...", - "t": "source.powershell string.quoted.single.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.powershell string.quoted.single.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.powershell punctuation.terminator.statement.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.powershell comment.line.powershell punctuation.definition.comment.powershell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " PowerShell commands need elevation for dependencies installation and running tests", - "t": "source.powershell comment.line.powershell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "if", - "t": "source.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "!", - "t": "source.powershell interpolated.simple.source.powershell keyword.operator.unary.powershell", - "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" - } - }, - { - "c": "(", - "t": "source.powershell interpolated.simple.source.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Test-IsAdmin", - "t": "source.powershell interpolated.simple.source.powershell interpolated.simple.source.powershell support.function.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ")", - "t": "source.powershell interpolated.simple.source.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Write-Host", - "t": "source.powershell meta.scriptblock.powershell support.function.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell meta.scriptblock.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "Object ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.powershell meta.scriptblock.powershell string.quoted.single.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Please launch command under administrator account. It is needed for environment setting up and unit test.", - "t": "source.powershell meta.scriptblock.powershell string.quoted.single.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.powershell meta.scriptblock.powershell string.quoted.single.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell meta.scriptblock.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "ForegroundColor Red", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.powershell meta.scriptblock.powershell punctuation.terminator.statement.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "env:", - "t": "source.powershell variable.other.readwrite.powershell support.variable.drive.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "AzurePSRoot", - "t": "source.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Split-Path", - "t": "source.powershell support.function.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "Parent ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "Path ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "env:", - "t": "source.powershell variable.other.readwrite.powershell support.variable.drive.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "AzurePSRoot", - "t": "source.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.powershell punctuation.terminator.statement.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.powershell punctuation.section.group.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Test-Path", - "t": "source.powershell interpolated.simple.source.powershell support.function.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell interpolated.simple.source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "Path ", - "t": "source.powershell interpolated.simple.source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.powershell interpolated.simple.source.powershell string.quoted.double.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.powershell interpolated.simple.source.powershell string.quoted.double.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "env:", - "t": "source.powershell interpolated.simple.source.powershell string.quoted.double.powershell variable.other.readwrite.powershell support.variable.drive.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "ADXSDKProgramFiles", - "t": "source.powershell interpolated.simple.source.powershell string.quoted.double.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\\Microsoft Visual Studio 12.0", - "t": "source.powershell interpolated.simple.source.powershell string.quoted.double.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.powershell interpolated.simple.source.powershell string.quoted.double.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.powershell punctuation.section.group.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "vsVersion", - "t": "source.powershell meta.scriptblock.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.powershell meta.scriptblock.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell string.quoted.double.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "12.0", - "t": "source.powershell meta.scriptblock.powershell string.quoted.double.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell string.quoted.double.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.powershell keyword.control.powershell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.begin.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.powershell meta.scriptblock.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell meta.scriptblock.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "vsVersion", - "t": "source.powershell meta.scriptblock.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.powershell meta.scriptblock.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell string.quoted.double.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "11.0", - "t": "source.powershell meta.scriptblock.powershell string.quoted.double.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.powershell meta.scriptblock.powershell string.quoted.double.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "}", - "t": "source.powershell meta.scriptblock.powershell punctuation.section.braces.end.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "setVSEnv", - "t": "source.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.powershell string.quoted.single.powershell punctuation.definition.string.begin.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"{0}\\Microsoft Visual Studio {1}\\VC\\vcvarsall.bat\" x64", - "t": "source.powershell string.quoted.single.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.powershell string.quoted.single.powershell punctuation.definition.string.end.powershell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-f", - "t": "source.powershell keyword.operator.string-format.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "env:", - "t": "source.powershell variable.other.readwrite.powershell support.variable.drive.powershell", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": "ADXSDKProgramFiles", - "t": "source.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.powershell keyword.operator.other.powershell", - "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" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "vsVersion", - "t": "source.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.powershell punctuation.terminator.statement.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Invoke-Environment", - "t": "source.powershell support.function.powershell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.powershell keyword.operator.assignment.powershell", - "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" - } - }, - { - "c": "Command ", - "t": "source.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.powershell variable.other.readwrite.powershell punctuation.definition.variable.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "setVSEnv", - "t": "source.powershell variable.other.readwrite.powershell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.powershell punctuation.terminator.statement.powershell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/pug/.vscodeignore b/extensions/pug/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/pug/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/pug/cgmanifest.json b/extensions/pug/cgmanifest.json deleted file mode 100644 index e7bd7bccc09..00000000000 --- a/extensions/pug/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "davidrios/pug-tmbundle", - "repositoryUrl": "https://github.com/davidrios/pug-tmbundle", - "commitHash": "e67e895f6fb64932aa122e471000fa55d826bff6" - } - }, - "license": "MIT", - "description": "The file syntaxes/pug.tmLanguage.json was derived from Syntaxes/Pug.JSON-tmLanguage in https://github.com/davidrios/pug-tmbundle.", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/pug/language-configuration.json b/extensions/pug/language-configuration.json deleted file mode 100644 index 98a2b77ca27..00000000000 --- a/extensions/pug/language-configuration.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "comments": { - "lineComment": "//-" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["'", "'"], - ["\"", "\""] - ], - "folding": { - "offSide": true - } -} diff --git a/extensions/pug/package.json b/extensions/pug/package.json deleted file mode 100644 index 7565f0a0119..00000000000 --- a/extensions/pug/package.json +++ /dev/null @@ -1,25 +0,0 @@ -{ - "name": "pug", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js davidrios/pug-tmbundle Syntaxes/Pug.JSON-tmLanguage ./syntaxes/pug.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "jade", - "extensions": [ ".pug", ".jade" ], - "aliases": [ "Pug", "Jade", "jade" ], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "jade", - "scopeName": "text.pug", - "path": "./syntaxes/pug.tmLanguage.json" - }] - } -} diff --git a/extensions/pug/package.nls.json b/extensions/pug/package.nls.json deleted file mode 100644 index 2c7f5324dfe..00000000000 --- a/extensions/pug/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Pug Language Basics", - "description": "Provides syntax highlighting and bracket matching in Pug files." -} \ No newline at end of file diff --git a/extensions/pug/syntaxes/pug.tmLanguage.json b/extensions/pug/syntaxes/pug.tmLanguage.json deleted file mode 100644 index 108fc1ed1c6..00000000000 --- a/extensions/pug/syntaxes/pug.tmLanguage.json +++ /dev/null @@ -1,987 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/davidrios/pug-tmbundle/blob/master/Syntaxes/Pug.JSON-tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/davidrios/pug-tmbundle/commit/e67e895f6fb64932aa122e471000fa55d826bff6", - "name": "Pug", - "scopeName": "text.pug", - "patterns": [ - { - "match": "^(!!!|doctype)(\\s*[a-zA-Z0-9-_]+)?", - "name": "meta.tag.sgml.doctype.html", - "comment": "Doctype declaration." - }, - { - "begin": "^(\\s*)//-", - "end": "^(?!(\\1\\s)|\\s*$)", - "name": "comment.unbuffered.block.pug", - "comment": "Unbuffered (pug-only) comments." - }, - { - "begin": "^(\\s*)//", - "end": "^(?!(\\1\\s)|\\s*$)", - "name": "string.comment.buffered.block.pug", - "comment": "Buffered (html) comments.", - "patterns": [ - { - "captures": { - "1": { - "name": "invalid.illegal.comment.comment.block.pug" - } - }, - "match": "^\\s*(//)(?!-)", - "name": "string.comment.buffered.block.pug", - "comment": "Buffered comments inside buffered comments will generate invalid html." - } - ] - }, - { - "begin": "" ] - }, - "brackets": [ - [""], - ["{", "}"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}"}, - { "open": "[", "close": "]"}, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'" }, - { "open": "\"", "close": "\"" } - ], - "surroundingPairs": [ - { "open": "'", "close": "'" }, - { "open": "\"", "close": "\"" }, - { "open": "<", "close": ">" } - ] -} diff --git a/extensions/razor/package.json b/extensions/razor/package.json deleted file mode 100644 index 98147bed692..00000000000 --- a/extensions/razor/package.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "name": "razor", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "0.10.x" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js demyte/language-cshtml grammars/cshtml.json ./syntaxes/cshtml.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "razor", - "extensions": [ ".cshtml"], - "aliases": [ "Razor", "razor" ], - "mimetypes": ["text/x-cshtml"], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "razor", - "scopeName": "text.html.cshtml", - "path": "./syntaxes/cshtml.tmLanguage.json", - "embeddedLanguages": { - "section.embedded.source.cshtml": "csharp", - "source.css": "css", - "source.js": "javascript" - } - }] - } -} diff --git a/extensions/razor/package.nls.json b/extensions/razor/package.nls.json deleted file mode 100644 index b4f470556fd..00000000000 --- a/extensions/razor/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Razor Language Basics", - "description": "Provides syntax highlighting, bracket matching and folding in Razor files." -} \ No newline at end of file diff --git a/extensions/razor/syntaxes/cshtml.tmLanguage.json b/extensions/razor/syntaxes/cshtml.tmLanguage.json deleted file mode 100644 index c662cee2fa3..00000000000 --- a/extensions/razor/syntaxes/cshtml.tmLanguage.json +++ /dev/null @@ -1,341 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/demyte/language-cshtml/blob/master/grammars/cshtml.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/demyte/language-cshtml/commit/e6e54d5a86a28cc1e44609a32aaa10a244cd3f81", - "name": "ASP.NET Razor", - "scopeName": "text.html.cshtml", - "patterns": [ - { - "include": "#razor-directives" - }, - { - "include": "#razor-code-block" - }, - { - "include": "#razor-else-if" - }, - { - "include": "#razor-if" - }, - { - "include": "#razor-else" - }, - { - "include": "#razor-foreach" - }, - { - "include": "#explicit-razor-expression" - }, - { - "include": "#implicit-razor-expression" - }, - { - "include": "text.html.basic" - } - ], - "repository": { - "comments": { - "begin": "@\\*", - "captures": { - "0": { - "name": "punctuation.definition.comment.source.cshtml" - } - }, - "end": "\\*@", - "name": "comment.block.cshtml" - }, - "razor-directives": { - "name": "meta.directive.cshtml", - "patterns": [ - { - "include": "#using-directive" - }, - { - "include": "#model-directive" - }, - { - "include": "#inherits-directive" - }, - { - "include": "#inject-directive" - }, - { - "include": "#implements-directive" - }, - { - "include": "#layout-directive" - }, - { - "include": "#page-directive" - }, - { - "include": "#functions-directive" - } - ] - }, - "explicit-razor-expression": { - "name": "meta.expression.explicit.cshtml", - "begin": "(@)\\(", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "\\)" - }, - "implicit-razor-expression": { - "name": "meta.expression.implicit.cshtml", - "begin": "(@)([a-zA-Z0-9\\.\\_\\(\\)]+)", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "end": "$" - }, - "using-directive": { - "name": "meta.directive.using.cshtml", - "begin": "(@using)\\s+", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "#csharp-namespace-identifier" - } - ], - "end": "$" - }, - "model-directive": { - "name": "meta.directive.model.cshtml", - "begin": "(@model)\\s+", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "#csharp-type-name" - } - ], - "end": "$" - }, - "inherits-directive": { - "name": "meta.directive.inherits.cshtml", - "begin": "(@inherits)\\s+", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "#csharp-type-name" - } - ], - "end": "$" - }, - "inject-directive": { - "name": "meta.directive.inject.cshtml", - "begin": "(@inject)\\s+", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "#csharp-type-name" - } - ], - "end": "$" - }, - "implements-directive": { - "name": "meta.directive.implements.cshtml", - "begin": "(@implements)\\s+", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "#csharp-type-name" - } - ], - "end": "$" - }, - "layout-directive": { - "name": "meta.directive.layout.cshtml", - "begin": "(@layout)\\s+", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "#csharp-type-name" - } - ], - "end": "$" - }, - "page-directive": { - "name": "meta.directive.page.cshtml", - "begin": "(@page)\\s+", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "$" - }, - "functions-directive": { - "name": "meta.directive.functions.cshtml", - "match": "(@functions)", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - } - }, - "razor-if": { - "begin": "(@if)", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "$" - }, - "razor-else": { - "begin": "(else)", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "$" - }, - "razor-else-if": { - "begin": "(else\\s+if)", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "$" - }, - "razor-foreach": { - "begin": "(@foreach)\\s+\\(", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "source.cs" - } - ], - "end": "\\)" - }, - "razor-code-block": { - "begin": "@?\\{", - "captures": { - "0": { - "name": "keyword.control.cshtml" - } - }, - "patterns": [ - { - "include": "text.html.cshtml" - }, - { - "include": "source.cs" - } - ], - "end": "\\}" - }, - "csharp-namespace-identifier": { - "patterns": [ - { - "name": "entity.name.type.namespace.cs", - "match": "[_[:alpha:]][_[:alnum:]]*" - } - ] - }, - "csharp-type-name": { - "patterns": [ - { - "match": "([_[:alpha:]][_[:alnum:]]*)\\s*(\\:\\:)", - "captures": { - "1": { - "name": "entity.name.type.alias.cs" - }, - "2": { - "name": "punctuation.separator.coloncolon.cs" - } - } - }, - { - "match": "([_[:alpha:]][_[:alnum:]]*)\\s*(\\.)", - "captures": { - "1": { - "name": "storage.type.cs" - }, - "2": { - "name": "punctuation.accessor.cs" - } - } - }, - { - "match": "(\\.)\\s*([_[:alpha:]][_[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.cs" - }, - "2": { - "name": "storage.type.cs" - } - } - }, - { - "name": "storage.type.cs", - "match": "[_[:alpha:]][_[:alnum:]]*" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/razor/test/colorize-fixtures/test.cshtml b/extensions/razor/test/colorize-fixtures/test.cshtml deleted file mode 100644 index d02cdf449e4..00000000000 --- a/extensions/razor/test/colorize-fixtures/test.cshtml +++ /dev/null @@ -1,46 +0,0 @@ -@{ - var total = 0; - var totalMessage = ""; - @* a multiline - razor comment embedded in csharp *@ - if (IsPost) { - - // Retrieve the numbers that the user entered. - var num1 = Request["text1"]; - var num2 = Request["text2"]; - - // Convert the entered strings into integers numbers and add. - total = num1.AsInt() + num2.AsInt(); - totalMessage = "Total = " + total; - } -} - - - - - Add Numbers - - - -

Enter two whole numbers and then click Add.

-
-

- -

-

- -

-

-
- - @* now we call the totalMessage method - (a multi line razor comment outside code) *@ - -

@totalMessage

- -

@(totalMessage+"!")

- - An email address (with escaped at character): name@@domain.com - - - \ No newline at end of file diff --git a/extensions/razor/test/colorize-results/test_cshtml.json b/extensions/razor/test/colorize-results/test_cshtml.json deleted file mode 100644 index e542974ce42..00000000000 --- a/extensions/razor/test/colorize-results/test_cshtml.json +++ /dev/null @@ -1,3698 +0,0 @@ -[ - { - "c": "@{", - "t": "text.html.cshtml keyword.control.cshtml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "text.html.cshtml keyword.other.var.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "total", - "t": "text.html.cshtml entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.cshtml keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "text.html.cshtml constant.numeric.decimal.cs", - "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" - } - }, - { - "c": ";", - "t": "text.html.cshtml punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "text.html.cshtml keyword.other.var.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "totalMessage", - "t": "text.html.cshtml entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.cshtml keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.begin.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.end.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "text.html.cshtml punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " @", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "text.html.cshtml keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "multiline", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "razor", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "comment", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "embedded", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "csharp", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "text.html.cshtml keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": "@", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "text.html.cshtml keyword.control.conditional.if.cs", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "text.html.cshtml punctuation.parenthesis.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "IsPost", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "text.html.cshtml punctuation.parenthesis.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "text.html.cshtml punctuation.curlybrace.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml punctuation.whitespace.comment.leading.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "text.html.cshtml comment.line.double-slash.cs punctuation.definition.comment.cs", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Retrieve the numbers that the user entered.", - "t": "text.html.cshtml comment.line.double-slash.cs", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "text.html.cshtml keyword.other.var.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "num1", - "t": "text.html.cshtml entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.cshtml keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Request", - "t": "text.html.cshtml variable.other.object.property.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "text.html.cshtml punctuation.squarebracket.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.begin.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text1", - "t": "text.html.cshtml string.quoted.double.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.end.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "text.html.cshtml punctuation.squarebracket.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.cshtml punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "text.html.cshtml keyword.other.var.cs", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "num2", - "t": "text.html.cshtml entity.name.variable.local.cs", - "r": { - "dark_plus": "entity.name.variable: #9CDCFE", - "light_plus": "entity.name.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.cshtml keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Request", - "t": "text.html.cshtml variable.other.object.property.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "text.html.cshtml punctuation.squarebracket.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.begin.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text2", - "t": "text.html.cshtml string.quoted.double.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.end.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "text.html.cshtml punctuation.squarebracket.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.cshtml punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml punctuation.whitespace.comment.leading.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "text.html.cshtml comment.line.double-slash.cs punctuation.definition.comment.cs", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Convert the entered strings into integers numbers and add.", - "t": "text.html.cshtml comment.line.double-slash.cs", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "total", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.cshtml keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "num1", - "t": "text.html.cshtml variable.other.object.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.cshtml punctuation.accessor.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "AsInt", - "t": "text.html.cshtml entity.name.function.cs", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.cshtml punctuation.parenthesis.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "text.html.cshtml punctuation.parenthesis.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "text.html.cshtml keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "num2", - "t": "text.html.cshtml variable.other.object.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "text.html.cshtml punctuation.accessor.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "AsInt", - "t": "text.html.cshtml entity.name.function.cs", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "text.html.cshtml punctuation.parenthesis.open.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "text.html.cshtml punctuation.parenthesis.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "text.html.cshtml punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml keyword.operator.relational.cs", - "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" - } - }, - { - "c": "italic", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "><", - "t": "text.html.cshtml keyword.operator.relational.cs", - "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" - } - }, - { - "c": "bold", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ">", - "t": "text.html.cshtml keyword.operator.relational.cs", - "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" - } - }, - { - "c": "totalMessage", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "text.html.cshtml keyword.operator.assignment.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.begin.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Total = ", - "t": "text.html.cshtml string.quoted.double.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml string.quoted.double.cs punctuation.definition.string.end.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "text.html.cshtml keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "total", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "text.html.cshtml punctuation.terminator.statement.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml keyword.operator.relational.cs", - "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" - } - }, - { - "c": "/", - "t": "text.html.cshtml keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": "bold", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "><", - "t": "text.html.cshtml keyword.operator.relational.cs", - "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" - } - }, - { - "c": "/", - "t": "text.html.cshtml keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": "italic", - "t": "text.html.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ">", - "t": "text.html.cshtml keyword.operator.relational.cs", - "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" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.cshtml punctuation.curlybrace.close.cs", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "text.html.cshtml keyword.control.cshtml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.metadata.doctype.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.html.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "html", - "t": "text.html.cshtml meta.tag.structure.html.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.html.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "lang", - "t": "text.html.cshtml meta.tag.structure.html.start.html meta.attribute.lang.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.html.start.html meta.attribute.lang.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.html.start.html meta.attribute.lang.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "en", - "t": "text.html.cshtml meta.tag.structure.html.start.html meta.attribute.lang.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.html.start.html meta.attribute.lang.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.html.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.head.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "head", - "t": "text.html.cshtml meta.tag.structure.head.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.head.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.metadata.title.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "title", - "t": "text.html.cshtml meta.tag.metadata.title.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.metadata.title.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Add Numbers", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.metadata.title.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "meta", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "charset", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html meta.attribute.charset.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html meta.attribute.charset.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html meta.attribute.charset.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "utf-8", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html meta.attribute.charset.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html meta.attribute.charset.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/>", - "t": "text.html.cshtml meta.tag.metadata.meta.void.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.head.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.body.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "body", - "t": "text.html.cshtml meta.tag.structure.body.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.body.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "p", - "t": "text.html.cshtml meta.tag.structure.p.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Enter two whole numbers and then click ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.inline.strong.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "strong", - "t": "text.html.cshtml meta.tag.inline.strong.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.inline.strong.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Add", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.inline.strong.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": ".", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.p.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.form.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "form", - "t": "text.html.cshtml meta.tag.structure.form.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.form.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "action", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.action.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.action.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.action.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.action.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.form.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "method", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.method.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.method.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.method.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "post", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.method.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.form.start.html meta.attribute.method.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.form.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "p", - "t": "text.html.cshtml meta.tag.structure.p.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.label.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "label", - "t": "text.html.cshtml meta.tag.structure.label.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.label.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text1", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.label.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "First Number:", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.label.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.input.void.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "input", - "t": "text.html.cshtml meta.tag.structure.input.void.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text1", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/>", - "t": "text.html.cshtml meta.tag.structure.input.void.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.p.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "p", - "t": "text.html.cshtml meta.tag.structure.p.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.label.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "label", - "t": "text.html.cshtml meta.tag.structure.label.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.label.start.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text2", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.label.start.html meta.attribute.for.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.label.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Second Number:", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.label.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.input.void.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "input", - "t": "text.html.cshtml meta.tag.structure.input.void.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "text2", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.name.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/>", - "t": "text.html.cshtml meta.tag.structure.input.void.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.p.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "p", - "t": "text.html.cshtml meta.tag.structure.p.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.input.void.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "input", - "t": "text.html.cshtml meta.tag.structure.input.void.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "type", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "submit", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.type.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "value", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.value.html entity.other.attribute-name.html", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.value.html punctuation.separator.key-value.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.value.html string.quoted.double.html punctuation.definition.string.begin.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Add", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.value.html string.quoted.double.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.tag.structure.input.void.html meta.attribute.value.html string.quoted.double.html punctuation.definition.string.end.html", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.html: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.html: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.html.cshtml meta.tag.structure.input.void.html", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/>", - "t": "text.html.cshtml meta.tag.structure.input.void.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.p.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.form.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "\t@* now we call the totalMessage method", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t (a multi line razor comment outside code) *@", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "p", - "t": "text.html.cshtml meta.tag.structure.p.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "@totalMessage", - "t": "text.html.cshtml meta.expression.implicit.cshtml keyword.control.cshtml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "

", - "t": "text.html.cshtml meta.expression.implicit.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.begin.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "p", - "t": "text.html.cshtml meta.tag.structure.p.start.html entity.name.tag.html", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.html.cshtml meta.tag.structure.p.start.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "@(", - "t": "text.html.cshtml meta.expression.explicit.cshtml keyword.control.cshtml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "totalMessage", - "t": "text.html.cshtml meta.expression.explicit.cshtml variable.other.readwrite.cs", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "+", - "t": "text.html.cshtml meta.expression.explicit.cshtml keyword.operator.arithmetic.cs", - "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" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.expression.explicit.cshtml string.quoted.double.cs punctuation.definition.string.begin.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "!", - "t": "text.html.cshtml meta.expression.explicit.cshtml string.quoted.double.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.html.cshtml meta.expression.explicit.cshtml string.quoted.double.cs punctuation.definition.string.end.cs", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "text.html.cshtml meta.expression.explicit.cshtml keyword.control.cshtml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.p.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " An email address (with escaped at character): name@", - "t": "text.html.cshtml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@domain.com", - "t": "text.html.cshtml meta.expression.implicit.cshtml keyword.control.cshtml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.body.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.html.cshtml meta.tag.structure.html.end.html punctuation.definition.tag.end.html", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] diff --git a/extensions/ruby/.vscodeignore b/extensions/ruby/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/ruby/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/ruby/cgmanifest.json b/extensions/ruby/cgmanifest.json deleted file mode 100644 index d6b94faac3d..00000000000 --- a/extensions/ruby/cgmanifest.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "textmate/ruby.tmbundle", - "repositoryUrl": "https://github.com/textmate/ruby.tmbundle", - "commitHash": "8d525dd4a0b77ae041593ff26dc883a694c648c5" - } - }, - "licenseDetail": [ - "Copyright (c) textmate-ruby.tmbundle project authors", - "", - "If not otherwise specified (see below), files in this folder fall under the following license: ", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information, ", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added ", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example ", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ], - "license": "TextMate Bundle License", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/ruby/language-configuration.json b/extensions/ruby/language-configuration.json deleted file mode 100644 index 81fdee540f2..00000000000 --- a/extensions/ruby/language-configuration.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "comments": { - "lineComment": "#", - "blockComment": [ "=begin", "=end" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] }, - { "open": "`", "close": "`", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["`", "`"] - ], - "indentationRules": { - "increaseIndentPattern": "^\\s*((begin|class|(private|protected)\\s+def|def|else|elsif|ensure|for|if|module|rescue|unless|until|when|while|case)|([^#]*\\sdo\\b)|([^#]*=\\s*(case|if|unless)))\\b([^#\\{;]|(\"|'|\/).*\\4)*(#.*)?$", - "decreaseIndentPattern": "^\\s*([}\\]]([,)]?\\s*(#|$)|\\.[a-zA-Z_]\\w*\\b)|(end|rescue|ensure|else|elsif|when)\\b)" - } -} diff --git a/extensions/ruby/package.json b/extensions/ruby/package.json deleted file mode 100644 index 020b1d6daf6..00000000000 --- a/extensions/ruby/package.json +++ /dev/null @@ -1,27 +0,0 @@ -{ - "name": "ruby", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js textmate/ruby.tmbundle Syntaxes/Ruby.plist ./syntaxes/ruby.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "ruby", - "extensions": [ ".rb", ".rbx", ".rjs", ".gemspec", ".rake", ".ru", ".erb", ".podspec", ".rbi" ], - "filenames": [ "rakefile", "gemfile", "guardfile", "podfile", "capfile", "cheffile", "hobofile", "vagrantfile", "appraisals", "rantfile", "berksfile", "berksfile.lock", "thorfile", "puppetfile", "dangerfile", "brewfile", "fastfile", "appfile", "deliverfile", "matchfile", "scanfile", "snapfile", "gymfile" ], - "aliases": [ "Ruby", "rb" ], - "firstLine": "^#!\\s*/.*\\bruby\\b", - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "ruby", - "scopeName": "source.ruby", - "path": "./syntaxes/ruby.tmLanguage.json" - }] - } -} diff --git a/extensions/ruby/package.nls.json b/extensions/ruby/package.nls.json deleted file mode 100644 index 272eb46fbad..00000000000 --- a/extensions/ruby/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Ruby Language Basics", - "description": "Provides syntax highlighting and bracket matching in Ruby files." -} \ No newline at end of file diff --git a/extensions/ruby/syntaxes/ruby.tmLanguage.json b/extensions/ruby/syntaxes/ruby.tmLanguage.json deleted file mode 100644 index d223655d8d5..00000000000 --- a/extensions/ruby/syntaxes/ruby.tmLanguage.json +++ /dev/null @@ -1,2775 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/ruby.tmbundle/blob/master/Syntaxes/Ruby.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/ruby.tmbundle/commit/8d525dd4a0b77ae041593ff26dc883a694c648c5", - "name": "Ruby", - "scopeName": "source.ruby", - "comment": "\n\tTODO: unresolved issues\n\n\ttext:\n\t\"p <[a-zA-Z_]\\w*(?>[?!])?)(:)(?!:)", - "name": "constant.other.symbol.hashkey.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.ruby" - } - }, - "comment": "symbols as hash key (1.8 syntax)", - "match": "(?[a-zA-Z_]\\w*(?>[?!])?)(?=\\s*=>)", - "name": "constant.other.symbol.hashkey.ruby" - }, - { - "comment": "everything being a reserved word, not a value and needing a 'end' is a..", - "match": "(?|_|\\*|\\$|\\?|:|\"|-[0adFiIlpvw])", - "name": "variable.other.readwrite.global.pre-defined.ruby" - }, - { - "begin": "\\b(ENV)\\[", - "beginCaptures": { - "1": { - "name": "variable.other.constant.ruby" - } - }, - "end": "\\]", - "name": "meta.environment-variable.ruby", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "\\b[A-Z]\\w*(?=((\\.|::)[A-Za-z]|\\[))", - "name": "support.class.ruby" - }, - { - "match": "\\b(abort|at_exit|autoload[?]?|binding|callcc|caller|caller_locations|chomp|chop|eval|exec|exit|exit!|fork|format|gets|global_variables|gsub|lambda|load|local_variables|open|p|print|printf|proc|putc|puts|rand|readline|readlines|select|set_trace_func|sleep|spawn|sprintf|srand|sub|syscall|system|test|trace_var|trap|untrace_var|warn)(\\b|(?<=[?!]))(?![?!])", - "name": "support.function.kernel.ruby" - }, - { - "match": "\\b[A-Z]\\w*\\b", - "name": "variable.other.constant.ruby" - }, - { - "begin": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t \\s*(\\() # the openning parenthesis for arguments\n\t\t\t ", - "beginCaptures": { - "1": { - "name": "keyword.control.def.ruby" - }, - "2": { - "name": "entity.name.function.ruby" - }, - "3": { - "name": "punctuation.definition.parameters.ruby" - } - }, - "comment": "the method pattern comes from the symbol pattern, see there for a explaination", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.ruby" - } - }, - "name": "meta.function.method.with-arguments.ruby", - "patterns": [ - { - "begin": "(?=[&*_a-zA-Z])", - "end": "(?=[,)])", - "patterns": [ - { - "captures": { - "1": { - "name": "storage.type.variable.ruby" - }, - "2": { - "name": "constant.other.symbol.hashkey.parameter.function.ruby" - }, - "3": { - "name": "punctuation.definition.constant.ruby" - }, - "4": { - "name": "variable.parameter.function.ruby" - } - }, - "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))" - }, - { - "include": "#parens" - }, - { - "include": "#braces" - }, - { - "include": "$self" - } - ] - } - ], - "repository": { - "braces": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.ruby" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.ruby" - } - }, - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#braces" - }, - { - "include": "$self" - } - ] - }, - "parens": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.ruby" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.ruby" - } - }, - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#braces" - }, - { - "include": "$self" - } - ] - } - } - }, - { - "begin": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\s+ # the def keyword\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) # …or an operator method\n\t\t\t [ \\t] # the space separating the arguments\n\t\t\t (?=[ \\t]*[^\\s#;]) # make sure arguments and not a comment follow\n\t\t\t ", - "beginCaptures": { - "1": { - "name": "keyword.control.def.ruby" - }, - "2": { - "name": "entity.name.function.ruby" - } - }, - "comment": "same as the previous rule, but without parentheses around the arguments", - "end": "$", - "name": "meta.function.method.with-arguments.ruby", - "patterns": [ - { - "begin": "(?![\\s,])", - "end": "(?=,|$)", - "patterns": [ - { - "captures": { - "1": { - "name": "storage.type.variable.ruby" - }, - "2": { - "name": "constant.other.symbol.hashkey.parameter.function.ruby" - }, - "3": { - "name": "punctuation.definition.constant.ruby" - }, - "4": { - "name": "variable.parameter.function.ruby" - } - }, - "match": "\\G([&*]?)(?:([_a-zA-Z]\\w*(:))|([_a-zA-Z]\\w*))", - "name": "variable.parameter.function.ruby" - }, - { - "include": "$self" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.def.ruby" - }, - "3": { - "name": "entity.name.function.ruby" - } - }, - "comment": " the optional name is just to catch the def also without a method-name", - "match": "(?x)\n\t\t\t (?=def\\b) # an optimization to help Oniguruma fail fast\n\t\t\t (?<=^|\\s)(def)\\b # the def keyword\n\t\t\t ( \\s+ # an optional group of whitespace followed by…\n\t\t\t ( (?>[a-zA-Z_]\\w*(?>\\.|::))? # a method name prefix\n\t\t\t (?>[a-zA-Z_]\\w*(?>[?!]|=(?!>))? # the method name\n\t\t\t |===?|!=|!~|>[>=]?|<=>|<[<=]?|[%&`/\\|^]|\\*\\*?|=?~|[-+]@?|\\[\\]=?) ) )? # …or an operator method\n\t\t\t ", - "name": "meta.function.method.without-arguments.ruby" - }, - { - "match": "\\b\\d(?>_?\\d)*(?=\\.\\d|[eE])(\\.\\d(?>_?\\d)*)?([eE][-+]?\\d(?>_?\\d)*)?r?i?\\b", - "name": "constant.numeric.float.ruby" - }, - { - "match": "\\b(0|(0[dD]\\d|[1-9])(?>_?\\d)*)r?i?\\b", - "name": "constant.numeric.integer.ruby" - }, - { - "match": "\\b0[xX]\\h(?>_?\\h)*r?i?\\b", - "name": "constant.numeric.hex.ruby" - }, - { - "match": "\\b0[bB][01](?>_?[01])*r?i?\\b", - "name": "constant.numeric.binary.ruby" - }, - { - "match": "\\b0([oO]?[0-7](?>_?[0-7])*)?r?i?\\b", - "name": "constant.numeric.octal.ruby" - }, - { - "begin": ":'", - "captures": { - "0": { - "name": "punctuation.definition.constant.ruby" - } - }, - "end": "'", - "name": "constant.other.symbol.single-quoted.ruby", - "patterns": [ - { - "match": "\\\\['\\\\]", - "name": "constant.character.escape.ruby" - } - ] - }, - { - "begin": ":\"", - "captures": { - "0": { - "name": "punctuation.definition.constant.ruby" - } - }, - "end": "\"", - "name": "constant.other.symbol.double-quoted.ruby", - "patterns": [ - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "comment": "Needs higher precidence than regular expressions.", - "match": "(?~(?:\\[,|&;]\n\t\t\t | [\\s;]if\\s\t\t\t# keywords\n\t\t\t | [\\s;]elsif\\s\n\t\t\t | [\\s;]while\\s\n\t\t\t | [\\s;]unless\\s\n\t\t\t | [\\s;]when\\s\n\t\t\t | [\\s;]assert_match\\s\n\t\t\t | [\\s;]or\\s\t\t\t# boolean opperators\n\t\t\t | [\\s;]and\\s\n\t\t\t | [\\s;]not\\s\n\t\t\t | [\\s.]index\\s\t\t\t# methods\n\t\t\t | [\\s.]scan\\s\n\t\t\t | [\\s.]sub\\s\n\t\t\t | [\\s.]sub!\\s\n\t\t\t | [\\s.]gsub\\s\n\t\t\t | [\\s.]gsub!\\s\n\t\t\t | [\\s.]match\\s\n\t\t\t )\n\t\t\t | (?<= # or a look-behind with line anchor:\n\t\t\t ^when\\s # duplication necessary due to limits of regex\n\t\t\t | ^if\\s\n\t\t\t | ^elsif\\s\n\t\t\t | ^while\\s\n\t\t\t | ^unless\\s\n\t\t\t )\n\t\t\t )\n\t\t\t \\s*((/))(?![*+{}?])\n\t\t\t", - "captures": { - "1": { - "name": "string.regexp.classic.ruby" - }, - "2": { - "name": "punctuation.definition.string.ruby" - } - }, - "comment": "regular expressions (normal)\n\t\t\twe only start a regexp if the character before it (excluding whitespace)\n\t\t\tis what we think is before a regexp\n\t\t\t", - "contentName": "string.regexp.classic.ruby", - "end": "((/[eimnosux]*))", - "patterns": [ - { - "include": "#regex_sub" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.constant.ruby" - } - }, - "comment": "symbols", - "match": "(?[a-zA-Z_]\\w*(?>[?!]|=(?![>=]))?|===?|>[>=]?|<=>|<[<=]?|[%&`/\\|]|\\*\\*?|=?~|[-+]@?|\\[\\]=?|(@@?|\\$)[a-zA-Z_]\\w*)", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "^=begin", - "captures": { - "0": { - "name": "punctuation.definition.comment.ruby" - } - }, - "comment": "multiline comments", - "end": "^=end", - "name": "comment.block.documentation.ruby" - }, - { - "begin": "(^[ \\t]+)?(?=#)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ruby" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ruby" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.ruby" - } - ] - }, - { - "comment": "\n\t\t\tmatches questionmark-letters.\n\n\t\t\texamples (1st alternation = hex):\n\t\t\t?\\x1 ?\\x61\n\n\t\t\texamples (2nd alternation = octal):\n\t\t\t?\\0 ?\\07 ?\\017\n\n\t\t\texamples (3rd alternation = escaped):\n\t\t\t?\\n ?\\b\n\n\t\t\texamples (4th alternation = meta-ctrl):\n\t\t\t?\\C-a ?\\M-a ?\\C-\\M-\\C-\\M-a\n\n\t\t\texamples (4th alternation = normal):\n\t\t\t?a ?A ?0 \n\t\t\t?* ?\" ?( \n\t\t\t?. ?#\n\t\t\t\n\t\t\t\n\t\t\tthe negative lookbehind prevents against matching\n\t\t\tp(42.tainted?)\n\t\t\t", - "match": "(?<<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1))", - "comment": "Heredoc with embedded html", - "end": "(?!\\G)", - "name": "meta.embedded.block.html", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)HTML)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "text.html", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "text.html.basic" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1))", - "comment": "Heredoc with embedded xml", - "end": "(?!\\G)", - "name": "meta.embedded.block.xml", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)XML)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "text.xml", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "text.xml" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1))", - "comment": "Heredoc with embedded sql", - "end": "(?!\\G)", - "name": "meta.embedded.block.sql", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)SQL)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.sql", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.sql" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1))", - "comment": "Heredoc with embedded css", - "end": "(?!\\G)", - "name": "meta.embedded.block.css", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CSS)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.css", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.css" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1))", - "comment": "Heredoc with embedded c++", - "end": "(?!\\G)", - "name": "meta.embedded.block.c++", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)CPP)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.c++", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.c++" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1))", - "comment": "Heredoc with embedded c", - "end": "(?!\\G)", - "name": "meta.embedded.block.c", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)C)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.c", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.c" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1))", - "comment": "Heredoc with embedded javascript", - "end": "(?!\\G)", - "name": "meta.embedded.block.js", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:JS|JAVASCRIPT))\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.js", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.js" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1))", - "comment": "Heredoc with embedded jQuery javascript", - "end": "(?!\\G)", - "name": "meta.embedded.block.js.jquery", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)JQUERY)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.js.jquery", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.js.jquery" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1))", - "comment": "Heredoc with embedded shell", - "end": "(?!\\G)", - "name": "meta.embedded.block.shell", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)(?:SH|SHELL))\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.shell", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.shell" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1))", - "comment": "Heredoc with embedded lua", - "end": "(?!\\G)", - "name": "meta.embedded.block.lua", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)LUA)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.lua", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.lua" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?=(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1))", - "comment": "Heredoc with embedded ruby", - "end": "(?!\\G)", - "name": "meta.embedded.block.ruby", - "patterns": [ - { - "begin": "(?><<[-~](\"?)((?:[_\\w]+_|)RUBY)\\b\\1)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "contentName": "source.ruby", - "end": "\\s*\\2$\\n?", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "source.ruby" - }, - { - "include": "#escaped_char" - } - ] - } - ] - }, - { - "begin": "(?>=\\s*<<(\\w+))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "^\\1$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?><<[-~](\\w+))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "comment": "heredoc with indented terminator", - "end": "\\s*\\1$", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.unquoted.heredoc.ruby", - "patterns": [ - { - "include": "#heredoc" - }, - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "(?<=\\{|do|\\{\\s|do\\s)(\\|)", - "captures": { - "1": { - "name": "punctuation.separator.arguments.ruby" - } - }, - "end": "(?", - "name": "punctuation.separator.key-value" - }, - { - "match": "->", - "name": "support.function.kernel.lambda.ruby" - }, - { - "match": "<<=|%=|&{1,2}=|\\*=|\\*\\*=|\\+=|-=|\\^=|\\|{1,2}=|<<", - "name": "keyword.operator.assignment.augmented.ruby" - }, - { - "match": "<=>|<(?!<|=)|>(?!<|=|>)|<=|>=|===|==|=~|!=|!~|(?<=[ \\t])\\?", - "name": "keyword.operator.comparison.ruby" - }, - { - "match": "(?>", - "name": "keyword.operator.other.ruby" - }, - { - "match": ";", - "name": "punctuation.separator.statement.ruby" - }, - { - "match": ",", - "name": "punctuation.separator.object.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.namespace.ruby" - } - }, - "comment": "Mark as namespace separator if double colons followed by capital letter", - "match": "(::)\\s*(?=[A-Z])" - }, - { - "captures": { - "1": { - "name": "punctuation.separator.method.ruby" - } - }, - "comment": "Mark as method separator if double colons not followed by capital letter", - "match": "(\\.|::)\\s*(?![A-Z])" - }, - { - "comment": "Must come after method and constant separators to prefer double colons", - "match": ":", - "name": "punctuation.separator.other.ruby" - }, - { - "match": "\\{", - "name": "punctuation.section.scope.begin.ruby" - }, - { - "match": "\\}", - "name": "punctuation.section.scope.end.ruby" - }, - { - "match": "\\[", - "name": "punctuation.section.array.begin.ruby" - }, - { - "match": "\\]", - "name": "punctuation.section.array.end.ruby" - }, - { - "match": "\\(|\\)", - "name": "punctuation.section.function.ruby" - } - ], - "repository": { - "escaped_char": { - "match": "\\\\(?:[0-7]{1,3}|x[\\da-fA-F]{1,2}|.)", - "name": "constant.character.escape.ruby" - }, - "heredoc": { - "begin": "^<<[-~]?\\w+", - "end": "$", - "patterns": [ - { - "include": "$self" - } - ] - }, - "interpolated_ruby": { - "patterns": [ - { - "begin": "#\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.ruby" - } - }, - "contentName": "source.ruby", - "end": "(\\})", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.ruby" - }, - "1": { - "name": "source.ruby" - } - }, - "name": "meta.embedded.line.ruby", - "patterns": [ - { - "include": "#nest_curly_and_self" - }, - { - "include": "$self" - } - ], - "repository": { - "nest_curly_and_self": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "punctuation.section.scope.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#nest_curly_and_self" - } - ] - }, - { - "include": "$self" - } - ] - } - } - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.instance.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#@@)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.class.ruby" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.ruby" - } - }, - "match": "(#\\$)[a-zA-Z_]\\w*", - "name": "variable.other.readwrite.global.ruby" - } - ] - }, - "percent_literals": { - "patterns": [ - { - "begin": "%i(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.symbol.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - }, - { - "include": "#symbol" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\<|\\\\>", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "<", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\{|\\\\\\}", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "\\{", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\[|\\\\\\]", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "\\[", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\(|\\\\\\)", - "name": "constant.other.symbol.ruby" - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "symbol": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\\\|\\\\[ ]", - "name": "constant.other.symbol.ruby" - }, - { - "match": "\\S\\w*", - "name": "constant.other.symbol.ruby" - } - ] - } - } - }, - { - "begin": "%I(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.symbol.interpolated.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - }, - { - "include": "#symbol" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "begin": "<", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "\\[", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "begin": "\\(", - "captures": { - "0": { - "name": "constant.other.symbol.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#symbol" - } - ] - } - ] - }, - "symbol": { - "patterns": [ - { - "begin": "(?=\\\\|#\\{)", - "end": "(?!\\G)", - "name": "constant.other.symbol.ruby", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ] - }, - { - "match": "\\S\\w*", - "name": "constant.other.symbol.ruby" - } - ] - } - } - }, - { - "begin": "%q(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.quoted.other.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - } - ], - "repository": { - "angles": { - "patterns": [ - { - "match": "\\\\<|\\\\>|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "match": "\\\\\\{|\\\\\\}|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "match": "\\\\\\[|\\\\\\]|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "match": "\\\\\\(|\\\\\\)|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%Q?(?:([(\\[{<])|([^\\w\\s=]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.quoted.other.interpolated.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - }, - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%r(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "([)\\]}>]\\2|\\1\\2)[eimnosux]*", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.regexp.percent.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - }, - { - "include": "#regex_sub" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "include": "#regex_sub" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%s(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.constant.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.constant.end.ruby" - } - }, - "name": "constant.other.symbol.percent.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - } - ], - "repository": { - "angles": { - "patterns": [ - { - "match": "\\\\<|\\\\>|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "match": "\\\\\\{|\\\\\\}|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "match": "\\\\\\[|\\\\\\]|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "match": "\\\\\\(|\\\\\\)|\\\\\\\\", - "name": "constant.character.escape.ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - }, - { - "begin": "%w(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.string.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - }, - { - "include": "#string" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\<|\\\\>", - "name": "string.other.ruby" - }, - { - "begin": "<", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\{|\\\\\\}", - "name": "string.other.ruby" - }, - { - "begin": "\\{", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\[|\\\\\\]", - "name": "string.other.ruby" - }, - { - "begin": "\\[", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\(|\\\\\\)", - "name": "string.other.ruby" - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - } - ] - }, - "string": { - "patterns": [ - { - "captures": { - "0": { - "name": "constant.character.escape.ruby" - } - }, - "match": "\\\\\\\\|\\\\[ ]", - "name": "string.other.ruby" - }, - { - "match": "\\S\\w*", - "name": "string.other.ruby" - } - ] - } - } - }, - { - "begin": "%W(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.section.array.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.section.array.end.ruby" - } - }, - "name": "meta.array.string.interpolated.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - }, - { - "include": "#string" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "begin": "<", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": ">", - "patterns": [ - { - "include": "#angles" - }, - { - "include": "#string" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "begin": "\\{", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\}", - "patterns": [ - { - "include": "#braces" - }, - { - "include": "#string" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "\\[", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - }, - { - "include": "#string" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "begin": "\\(", - "captures": { - "0": { - "name": "string.other.ruby" - } - }, - "end": "\\)", - "patterns": [ - { - "include": "#parens" - }, - { - "include": "#string" - } - ] - } - ] - }, - "string": { - "patterns": [ - { - "begin": "(?=\\\\|#\\{)", - "end": "(?!\\G)", - "name": "string.other.ruby", - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ] - }, - { - "match": "\\S\\w*", - "name": "string.other.ruby" - } - ] - } - } - }, - { - "begin": "%x(?:([(\\[{<])|([^\\w\\s]|_))", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ruby" - } - }, - "end": "[)\\]}>]\\2|\\1\\2", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.ruby" - } - }, - "name": "string.interpolated.percent.ruby", - "patterns": [ - { - "begin": "\\G(?<=\\()(?!\\))", - "end": "(?=\\))", - "patterns": [ - { - "include": "#parens" - } - ] - }, - { - "begin": "\\G(?<=\\[)(?!\\])", - "end": "(?=\\])", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\G(?<=\\{)(?!\\})", - "end": "(?=\\})", - "patterns": [ - { - "include": "#braces" - } - ] - }, - { - "begin": "\\G(?<=<)(?!>)", - "end": "(?=>)", - "patterns": [ - { - "include": "#angles" - } - ] - }, - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - } - ], - "repository": { - "angles": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "<", - "end": ">", - "patterns": [ - { - "include": "#angles" - } - ] - } - ] - }, - "braces": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\{", - "end": "\\}", - "patterns": [ - { - "include": "#braces" - } - ] - } - ] - }, - "brackets": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\[", - "end": "\\]", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "parens": { - "patterns": [ - { - "include": "#escaped_char" - }, - { - "include": "#interpolated_ruby" - }, - { - "begin": "\\(", - "end": "\\)", - "patterns": [ - { - "include": "#parens" - } - ] - } - ] - } - } - } - ] - }, - "regex_sub": { - "patterns": [ - { - "include": "#interpolated_ruby" - }, - { - "include": "#escaped_char" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.quantifier.begin.ruby" - }, - "3": { - "name": "punctuation.definition.quantifier.end.ruby" - } - }, - "match": "(\\{)\\d+(,\\d+)?(\\})", - "name": "keyword.operator.quantifier.ruby" - }, - { - "begin": "\\[\\^?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.character-class.begin.ruby" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.character-class.end.ruby" - } - }, - "name": "constant.other.character-class.set.ruby", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\\(\\?#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.ruby" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.ruby" - } - }, - "name": "comment.line.number-sign.ruby", - "patterns": [ - { - "include": "#escaped_char" - } - ] - }, - { - "begin": "\\(", - "captures": { - "0": { - "name": "punctuation.definition.group.ruby" - } - }, - "end": "\\)", - "name": "meta.group.regexp.ruby", - "patterns": [ - { - "include": "#regex_sub" - } - ] - }, - { - "begin": "(?<=^|\\s)(#)\\s(?=[[a-zA-Z0-9,. \\t?!-][^\\x{00}-\\x{7F}]]*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.ruby" - } - }, - "comment": "We are restrictive in what we allow to go after the comment character to avoid false positives, since the availability of comments depend on regexp flags.", - "end": "$\\n?", - "name": "comment.line.number-sign.ruby" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/ruby/test/colorize-fixtures/test.rb b/extensions/ruby/test/colorize-fixtures/test.rb deleted file mode 100644 index 9b81e2fd1cb..00000000000 --- a/extensions/ruby/test/colorize-fixtures/test.rb +++ /dev/null @@ -1,46 +0,0 @@ -# encoding: utf-8 -# Code generated by Microsoft (R) AutoRest Code Generator 0.16.0.0 -# Changes may cause incorrect behavior and will be lost if the code is -# regenerated. - -module Azure::ARM::Scheduler - # - # A service client - single point of access to the REST API. - # - class SchedulerManagementClient < MsRestAzure::AzureServiceClient - include Azure::ARM::Scheduler::Models - include MsRestAzure - - # @return job_collections - attr_reader :job_collections - - # - # Creates initializes a new instance of the SchedulerManagementClient class. - # @param credentials [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client. - # @param base_url [String] the base URI of the service. - # @param options [Array] filters to be applied to the HTTP requests. - # - def initialize(credentials, base_url = nil, options = nil) - super(credentials, options) - @base_url = base_url || 'https://management.azure.com' - - fail ArgumentError, 'credentials is nil' if credentials.nil? - fail ArgumentError, 'invalid type of credentials input parameter' unless credentials.is_a?(MsRest::ServiceClientCredentials) - @credentials = credentials - - @job_collections = JobCollections.new(self) - @jobs = Jobs.new(self) - @api_version = '2016-01-01' - @long_running_operation_retry_timeout = 30 - @generate_client_request_id = true - if MacOS.version >= :mavericks - version = `#{MAVERICKS_PKG_PATH}/usr/bin/clang --version` - else - version = `/usr/bin/clang --version` - end - version = version[/clang-(\d+\.\d+\.\d+(\.\d+)?)/, 1] || "0" - version < latest_version - end - - end -end \ No newline at end of file diff --git a/extensions/ruby/test/colorize-results/test_rb.json b/extensions/ruby/test/colorize-results/test_rb.json deleted file mode 100644 index c5122336ae1..00000000000 --- a/extensions/ruby/test/colorize-results/test_rb.json +++ /dev/null @@ -1,2840 +0,0 @@ -[ - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " encoding: utf-8", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Code generated by Microsoft (R) AutoRest Code Generator 0.16.0.0", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Changes may cause incorrect behavior and will be lost if the code is", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " regenerated.", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "module", - "t": "source.ruby meta.module.ruby keyword.control.module.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ruby meta.module.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Azure", - "t": "source.ruby meta.module.ruby entity.name.type.module.ruby entity.other.inherited-class.module.first.ruby", - "r": { - "dark_plus": "entity.other.inherited-class: #4EC9B0", - "light_plus": "entity.other.inherited-class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.other.inherited-class: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.ruby meta.module.ruby entity.name.type.module.ruby entity.other.inherited-class.module.first.ruby punctuation.separator.inheritance.ruby", - "r": { - "dark_plus": "entity.other.inherited-class: #4EC9B0", - "light_plus": "entity.other.inherited-class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.other.inherited-class: #4EC9B0" - } - }, - { - "c": "ARM", - "t": "source.ruby meta.module.ruby entity.name.type.module.ruby entity.other.inherited-class.module.second.ruby", - "r": { - "dark_plus": "entity.other.inherited-class: #4EC9B0", - "light_plus": "entity.other.inherited-class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.other.inherited-class: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.ruby meta.module.ruby entity.name.type.module.ruby entity.other.inherited-class.module.second.ruby punctuation.separator.inheritance.ruby", - "r": { - "dark_plus": "entity.other.inherited-class: #4EC9B0", - "light_plus": "entity.other.inherited-class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.other.inherited-class: #4EC9B0" - } - }, - { - "c": "Scheduler", - "t": "source.ruby meta.module.ruby entity.name.type.module.ruby", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " A service client - single point of access to the REST API.", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby meta.class.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.ruby meta.class.ruby keyword.control.class.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ruby meta.class.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "SchedulerManagementClient", - "t": "source.ruby meta.class.ruby entity.name.type.class.ruby", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ruby meta.class.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ruby meta.class.ruby keyword.operator.other.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby meta.class.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "MsRestAzure::AzureServiceClient", - "t": "source.ruby meta.class.ruby entity.other.inherited-class.ruby", - "r": { - "dark_plus": "entity.other.inherited-class: #4EC9B0", - "light_plus": "entity.other.inherited-class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.other.inherited-class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "include", - "t": "source.ruby keyword.other.special-method.ruby", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Azure", - "t": "source.ruby support.class.ruby", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.ruby punctuation.separator.namespace.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ARM", - "t": "source.ruby support.class.ruby", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.ruby punctuation.separator.namespace.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Scheduler", - "t": "source.ruby support.class.ruby", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.ruby punctuation.separator.namespace.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Models", - "t": "source.ruby variable.other.constant.ruby", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "include", - "t": "source.ruby keyword.other.special-method.ruby", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "MsRestAzure", - "t": "source.ruby variable.other.constant.ruby", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @return job_collections", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "attr_reader", - "t": "source.ruby keyword.other.special-method.ruby", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ruby constant.other.symbol.ruby punctuation.definition.constant.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "job_collections", - "t": "source.ruby constant.other.symbol.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Creates initializes a new instance of the SchedulerManagementClient class.", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @param credentials [MsRest::ServiceClientCredentials] credentials to authorize HTTP requests made by the service client.", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @param base_url [String] the base URI of the service.", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @param options [Array] filters to be applied to the HTTP requests.", - "t": "source.ruby comment.line.number-sign.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby punctuation.whitespace.comment.leading.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.ruby comment.line.number-sign.ruby punctuation.definition.comment.ruby", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "def", - "t": "source.ruby meta.function.method.with-arguments.ruby keyword.control.def.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ruby meta.function.method.with-arguments.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "initialize", - "t": "source.ruby meta.function.method.with-arguments.ruby entity.name.function.ruby", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ruby meta.function.method.with-arguments.ruby punctuation.definition.parameters.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "credentials", - "t": "source.ruby meta.function.method.with-arguments.ruby variable.parameter.function.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ", ", - "t": "source.ruby meta.function.method.with-arguments.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "base_url", - "t": "source.ruby meta.function.method.with-arguments.ruby variable.parameter.function.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby meta.function.method.with-arguments.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby meta.function.method.with-arguments.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby meta.function.method.with-arguments.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nil", - "t": "source.ruby meta.function.method.with-arguments.ruby constant.language.ruby", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ", ", - "t": "source.ruby meta.function.method.with-arguments.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "options", - "t": "source.ruby meta.function.method.with-arguments.ruby variable.parameter.function.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby meta.function.method.with-arguments.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby meta.function.method.with-arguments.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby meta.function.method.with-arguments.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nil", - "t": "source.ruby meta.function.method.with-arguments.ruby constant.language.ruby", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ")", - "t": "source.ruby meta.function.method.with-arguments.ruby punctuation.definition.parameters.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "super", - "t": "source.ruby keyword.control.pseudo-method.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "credentials", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.ruby punctuation.separator.object.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " options", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.ruby variable.other.readwrite.instance.ruby punctuation.definition.variable.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "base_url", - "t": "source.ruby variable.other.readwrite.instance.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " base_url ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.ruby keyword.operator.logical.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.begin.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "https://management.azure.com", - "t": "source.ruby string.quoted.single.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.end.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fail", - "t": "source.ruby keyword.other.special-method.ruby", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ArgumentError", - "t": "source.ruby variable.other.constant.ruby", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ruby punctuation.separator.object.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.begin.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "credentials is nil", - "t": "source.ruby string.quoted.single.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.end.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " credentials", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.ruby punctuation.separator.method.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "nil?", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fail", - "t": "source.ruby keyword.other.special-method.ruby", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ArgumentError", - "t": "source.ruby variable.other.constant.ruby", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ruby punctuation.separator.object.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.begin.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "invalid type of credentials input parameter", - "t": "source.ruby string.quoted.single.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.end.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unless", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " credentials", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.ruby punctuation.separator.method.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "is_a?", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "MsRest", - "t": "source.ruby support.class.ruby", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.ruby punctuation.separator.namespace.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ServiceClientCredentials", - "t": "source.ruby variable.other.constant.ruby", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.ruby variable.other.readwrite.instance.ruby punctuation.definition.variable.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "credentials", - "t": "source.ruby variable.other.readwrite.instance.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " credentials", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.ruby variable.other.readwrite.instance.ruby punctuation.definition.variable.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "job_collections", - "t": "source.ruby variable.other.readwrite.instance.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "JobCollections", - "t": "source.ruby support.class.ruby", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.ruby punctuation.separator.method.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.ruby keyword.other.special-method.ruby", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "(", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "self", - "t": "source.ruby variable.language.self.ruby", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.ruby variable.other.readwrite.instance.ruby punctuation.definition.variable.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "jobs", - "t": "source.ruby variable.other.readwrite.instance.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Jobs", - "t": "source.ruby support.class.ruby", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.ruby punctuation.separator.method.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.ruby keyword.other.special-method.ruby", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": "(", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "self", - "t": "source.ruby variable.language.self.ruby", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ruby punctuation.section.function.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.ruby variable.other.readwrite.instance.ruby punctuation.definition.variable.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "api_version", - "t": "source.ruby variable.other.readwrite.instance.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.begin.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "2016-01-01", - "t": "source.ruby string.quoted.single.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ruby string.quoted.single.ruby punctuation.definition.string.end.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.ruby variable.other.readwrite.instance.ruby punctuation.definition.variable.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "long_running_operation_retry_timeout", - "t": "source.ruby variable.other.readwrite.instance.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "30", - "t": "source.ruby constant.numeric.integer.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.ruby variable.other.readwrite.instance.ruby punctuation.definition.variable.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "generate_client_request_id", - "t": "source.ruby variable.other.readwrite.instance.ruby", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.ruby constant.language.ruby", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "MacOS", - "t": "source.ruby support.class.ruby", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.ruby punctuation.separator.method.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "version ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">=", - "t": "source.ruby keyword.operator.comparison.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ruby constant.other.symbol.ruby punctuation.definition.constant.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "mavericks", - "t": "source.ruby constant.other.symbol.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " version ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "`", - "t": "source.ruby string.interpolated.ruby punctuation.definition.string.begin.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.ruby string.interpolated.ruby meta.embedded.line.ruby punctuation.section.embedded.begin.ruby", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "MAVERICKS_PKG_PATH", - "t": "source.ruby string.interpolated.ruby meta.embedded.line.ruby source.ruby variable.other.constant.ruby", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.ruby string.interpolated.ruby meta.embedded.line.ruby punctuation.section.embedded.end.ruby source.ruby", - "r": { - "dark_plus": "punctuation.section.embedded: #569CD6", - "light_plus": "punctuation.section.embedded: #0000FF", - "dark_vs": "punctuation.section.embedded: #569CD6", - "light_vs": "punctuation.section.embedded: #0000FF", - "hc_black": "punctuation.section.embedded: #569CD6" - } - }, - { - "c": "/usr/bin/clang --version", - "t": "source.ruby string.interpolated.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "`", - "t": "source.ruby string.interpolated.ruby punctuation.definition.string.end.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " version ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "`", - "t": "source.ruby string.interpolated.ruby punctuation.definition.string.begin.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/usr/bin/clang --version", - "t": "source.ruby string.interpolated.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "`", - "t": "source.ruby string.interpolated.ruby punctuation.definition.string.end.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "end", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " version ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ruby keyword.operator.assignment.ruby", - "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" - } - }, - { - "c": " version", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.ruby punctuation.section.array.begin.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.ruby string.regexp.classic.ruby punctuation.definition.string.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "clang-", - "t": "source.ruby string.regexp.classic.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "(", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby punctuation.definition.group.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\d", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby constant.character.escape.ruby", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "+", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\.\\d", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby constant.character.escape.ruby", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "+", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\.\\d", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby constant.character.escape.ruby", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "+", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "(", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby meta.group.regexp.ruby punctuation.definition.group.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "\\.\\d", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby meta.group.regexp.ruby constant.character.escape.ruby", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "+", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby meta.group.regexp.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": ")", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby meta.group.regexp.ruby punctuation.definition.group.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "?", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": ")", - "t": "source.ruby string.regexp.classic.ruby meta.group.regexp.ruby punctuation.definition.group.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": "/", - "t": "source.ruby string.regexp.classic.ruby punctuation.definition.string.ruby", - "r": { - "dark_plus": "string.regexp: #D16969", - "light_plus": "string.regexp: #811F3F", - "dark_vs": "string.regexp: #D16969", - "light_vs": "string.regexp: #811F3F", - "hc_black": "string.regexp: #D16969" - } - }, - { - "c": ",", - "t": "source.ruby punctuation.separator.object.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ruby constant.numeric.integer.ruby", - "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" - } - }, - { - "c": "]", - "t": "source.ruby punctuation.section.array.end.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.ruby keyword.operator.logical.ruby", - "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" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.ruby string.quoted.double.ruby punctuation.definition.string.begin.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "0", - "t": "source.ruby string.quoted.double.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.ruby string.quoted.double.ruby punctuation.definition.string.end.ruby", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " version ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ruby keyword.operator.comparison.ruby", - "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" - } - }, - { - "c": " latest_version", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "end", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ruby", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "end", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "end", - "t": "source.ruby keyword.control.ruby", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - } -] \ No newline at end of file diff --git a/extensions/rust/.vscodeignore b/extensions/rust/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/rust/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/rust/cgmanifest.json b/extensions/rust/cgmanifest.json deleted file mode 100644 index bfd20614952..00000000000 --- a/extensions/rust/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "rust-syntax", - "repositoryUrl": "https://github.com/dustypomerleau/rust-syntax", - "commitHash": "7b924664814131ae4509a537bb07960fe65dcaac" - } - }, - "license": "MIT", - "description": "A TextMate-style grammar for Rust.", - "version": "0.4.3" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/rust/language-configuration.json b/extensions/rust/language-configuration.json deleted file mode 100644 index 5d4f16d26a6..00000000000 --- a/extensions/rust/language-configuration.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""] - ], - "indentationRules": { - "increaseIndentPattern": "^.*\\{[^}\"']*$|^.*\\([^\\)\"']*$", - "decreaseIndentPattern": "^\\s*(\\s*\\/[*].*[*]\\/\\s*)*[})]" - }, - "folding": { - "markers": { - "start": "^\\s*//\\s*#?region\\b", - "end": "^\\s*//\\s*#?endregion\\b" - } - } -} diff --git a/extensions/rust/package.json b/extensions/rust/package.json deleted file mode 100644 index 431e9fa203c..00000000000 --- a/extensions/rust/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "rust", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js dustypomerleau/rust-syntax syntaxes/rust.tmLanguage.json ./syntaxes/rust.tmLanguage.json" - }, - "contributes": { - "languages": [ - { - "id": "rust", - "extensions": [ - ".rs" - ], - "aliases": [ - "Rust", - "rust" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "rust", - "path": "./syntaxes/rust.tmLanguage.json", - "scopeName": "source.rust" - } - ] - } -} diff --git a/extensions/rust/package.nls.json b/extensions/rust/package.nls.json deleted file mode 100644 index 432a2206737..00000000000 --- a/extensions/rust/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Rust Language Basics", - "description": "Provides syntax highlighting and bracket matching in Rust files." -} \ No newline at end of file diff --git a/extensions/rust/syntaxes/rust.tmLanguage.json b/extensions/rust/syntaxes/rust.tmLanguage.json deleted file mode 100644 index 0bf85737864..00000000000 --- a/extensions/rust/syntaxes/rust.tmLanguage.json +++ /dev/null @@ -1,1145 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/dustypomerleau/rust-syntax/blob/master/syntaxes/rust.tmLanguage.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/dustypomerleau/rust-syntax/commit/7b924664814131ae4509a537bb07960fe65dcaac", - "name": "Rust", - "scopeName": "source.rust", - "patterns": [ - { - "comment": "boxed slice literal", - "begin": "(<)(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.brackets.angle.rust" - }, - "2": { - "name": "punctuation.brackets.square.rust" - } - }, - "end": ">", - "endCaptures": { - "0": { - "name": "punctuation.brackets.angle.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#gtypes" - }, - { - "include": "#lvariables" - }, - { - "include": "#lifetimes" - }, - { - "include": "#punctuation" - }, - { - "include": "#types" - } - ] - }, - { - "comment": "macro type metavariables", - "name": "meta.macro.metavariable.type.rust", - "match": "(\\$)((crate)|([A-Z][A-Za-z0-9_]*))((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?", - "captures": { - "1": { - "name": "keyword.operator.macro.dollar.rust" - }, - "3": { - "name": "keyword.other.crate.rust" - }, - "4": { - "name": "entity.name.type.metavariable.rust" - }, - "6": { - "name": "keyword.operator.key-value.rust" - }, - "7": { - "name": "variable.other.metavariable.specifier.rust" - } - }, - "patterns": [ - { - "include": "#keywords" - } - ] - }, - { - "comment": "macro metavariables", - "name": "meta.macro.metavariable.rust", - "match": "(\\$)([a-z][A-Za-z0-9_]*)((:)(block|expr|ident|item|lifetime|literal|meta|path?|stmt|tt|ty|vis))?", - "captures": { - "1": { - "name": "keyword.operator.macro.dollar.rust" - }, - "2": { - "name": "variable.other.metavariable.name.rust" - }, - "4": { - "name": "keyword.operator.key-value.rust" - }, - "5": { - "name": "variable.other.metavariable.specifier.rust" - } - }, - "patterns": [ - { - "include": "#keywords" - } - ] - }, - { - "comment": "macro rules", - "name": "meta.macro.rules.rust", - "match": "\\b(macro_rules!)\\s+(([a-z0-9_]+)|([A-Z][a-z0-9_]*))\\s+(\\{)", - "captures": { - "1": { - "name": "entity.name.function.macro.rules.rust" - }, - "3": { - "name": "entity.name.function.macro.rust" - }, - "4": { - "name": "entity.name.type.macro.rust" - }, - "5": { - "name": "punctuation.brackets.curly.rust" - } - } - }, - { - "comment": "attributes", - "name": "meta.attribute.rust", - "begin": "(#)(\\!?)(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.attribute.rust" - }, - "2": { - "name": "keyword.operator.attribute.inner.rust" - }, - "3": { - "name": "punctuation.brackets.attribute.rust" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.brackets.attribute.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lifetimes" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#gtypes" - }, - { - "include": "#types" - } - ] - }, - { - "comment": "modules", - "match": "(mod)\\s+((?:r#(?!crate|[Ss]elf|super))?[a-z][A-Za-z0-9_]*)", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "entity.name.module.rust" - } - } - }, - { - "comment": "external crate imports", - "name": "meta.import.rust", - "begin": "\\b(extern)\\s+(crate)", - "beginCaptures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "keyword.other.crate.rust" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.semi.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#punctuation" - } - ] - }, - { - "comment": "use statements", - "name": "meta.use.rust", - "begin": "\\b(use)\\s", - "beginCaptures": { - "1": { - "name": "keyword.other.rust" - } - }, - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.semi.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#types" - }, - { - "include": "#lvariables" - } - ] - }, - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#types" - }, - { - "include": "#keywords" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#variables" - } - ], - "repository": { - "comments": { - "patterns": [ - { - "comment": "documentation comments", - "name": "comment.line.documentation.rust", - "match": "^\\s*///.*" - }, - { - "comment": "line comments", - "name": "comment.line.double-slash.rust", - "match": "\\s*//.*" - } - ] - }, - "block-comments": { - "patterns": [ - { - "comment": "empty block comments", - "name": "comment.block.rust", - "match": "/\\*\\*/" - }, - { - "comment": "block documentation comments", - "name": "comment.block.documentation.rust", - "begin": "/\\*\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#block-comments" - } - ] - }, - { - "comment": "block comments", - "name": "comment.block.rust", - "begin": "/\\*(?!\\*)", - "end": "\\*/", - "patterns": [ - { - "include": "#block-comments" - } - ] - } - ] - }, - "constants": { - "patterns": [ - { - "comment": "ALL CAPS constants", - "name": "constant.other.caps.rust", - "match": "\\b[A-Z]{2}[A-Z0-9_]*\\b" - }, - { - "comment": "constant declarations", - "match": "\\b(const)\\s+([A-Z][A-Za-z0-9_]*)\\b", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "constant.other.caps.rust" - } - } - }, - { - "comment": "decimal integers and floats", - "name": "constant.numeric.decimal.rust", - "match": "\\b\\d[\\d_]*(\\.?)[\\d_]*(?:(E)([+-])([\\d_]+))?(f32|f64|i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "punctuation.separator.dot.decimal.rust" - }, - "2": { - "name": "keyword.operator.exponent.rust" - }, - "3": { - "name": "keyword.operator.exponent.sign.rust" - }, - "4": { - "name": "constant.numeric.decimal.exponent.mantissa.rust" - }, - "5": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "hexadecimal integers", - "name": "constant.numeric.hex.rust", - "match": "\\b0x[\\da-fA-F_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "octal integers", - "name": "constant.numeric.oct.rust", - "match": "\\b0o[0-7_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "binary integers", - "name": "constant.numeric.bin.rust", - "match": "\\b0b[01_]+(i128|i16|i32|i64|i8|isize|u128|u16|u32|u64|u8|usize)?\\b", - "captures": { - "1": { - "name": "entity.name.type.numeric.rust" - } - } - }, - { - "comment": "booleans", - "name": "constant.language.bool.rust", - "match": "\\b(true|false)\\b" - } - ] - }, - "escapes": { - "comment": "escapes: ASCII, byte, Unicode, quote, regex", - "name": "constant.character.escape.rust", - "match": "(\\\\)(?:(?:(x[0-7][0-7a-fA-F])|(u(\\{)[\\da-fA-F]{4,6}(\\}))|.))", - "captures": { - "1": { - "name": "constant.character.escape.backslash.rust" - }, - "2": { - "name": "constant.character.escape.bit.rust" - }, - "3": { - "name": "constant.character.escape.unicode.rust" - }, - "4": { - "name": "constant.character.escape.unicode.punctuation.rust" - }, - "5": { - "name": "constant.character.escape.unicode.punctuation.rust" - } - } - }, - "functions": { - "patterns": [ - { - "comment": "pub as a function", - "match": "\\b(pub)(\\()", - "captures": { - "1": { - "name": "keyword.other.rust" - }, - "2": { - "name": "punctuation.brackets.round.rust" - } - } - }, - { - "comment": "function definition", - "name": "meta.function.definition.rust", - "begin": "\\b(fn)\\s+((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)((\\()|(<))", - "beginCaptures": { - "1": { - "name": "keyword.other.fn.rust" - }, - "2": { - "name": "entity.name.function.rust" - }, - "4": { - "name": "punctuation.brackets.round.rust" - }, - "5": { - "name": "punctuation.brackets.angle.rust" - } - }, - "end": "\\{|;", - "endCaptures": { - "0": { - "name": "punctuation.brackets.curly.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - }, - { - "comment": "function/method calls, chaining", - "name": "meta.function.call.rust", - "begin": "((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.rust" - }, - "2": { - "name": "punctuation.brackets.round.rust" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.brackets.round.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - }, - { - "comment": "function/method calls with turbofish", - "name": "meta.function.call.rust", - "begin": "((?:r#(?!crate|[Ss]elf|super))?[A-Za-z0-9_]+)(?=::<.*>\\()", - "beginCaptures": { - "1": { - "name": "entity.name.function.rust" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.brackets.round.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#constants" - }, - { - "include": "#gtypes" - }, - { - "include": "#functions" - }, - { - "include": "#lifetimes" - }, - { - "include": "#macros" - }, - { - "include": "#namespaces" - }, - { - "include": "#punctuation" - }, - { - "include": "#strings" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - } - ] - }, - "keywords": { - "patterns": [ - { - "comment": "control flow keywords", - "name": "keyword.control.rust", - "match": "\\b(await|break|continue|do|else|for|if|loop|match|return|try|while|yield)\\b" - }, - { - "comment": "storage keywords", - "name": "storage.type.rust", - "match": "\\b(const|enum|extern|let|macro|mod|struct|trait|type)\\b" - }, - { - "comment": "storage modifiers", - "name": "storage.modifier.rust", - "match": "\\b(abstract|static)\\b" - }, - { - "comment": "other keywords", - "name": "keyword.other.rust", - "match": "\\b(as|async|become|box|dyn|move|final|impl|in|override|priv|pub|ref|typeof|union|unsafe|unsized|use|virtual|where)\\b" - }, - { - "comment": "fn", - "name": "keyword.other.fn.rust", - "match": "\\bfn\\b" - }, - { - "comment": "crate", - "name": "keyword.other.crate.rust", - "match": "\\bcrate\\b" - }, - { - "comment": "mut", - "name": "storage.modifier.mut.rust", - "match": "\\bmut\\b" - }, - { - "comment": "logical operators", - "name": "keyword.operator.logical.rust", - "match": "(\\^|\\||\\|\\||&&|<<|>>|!)(?!=)" - }, - { - "comment": "logical AND, borrow references", - "name": "keyword.operator.borrow.and.rust", - "match": "&(?![&=])" - }, - { - "comment": "assignment operators", - "name": "keyword.operator.assignment.rust", - "match": "(\\+=|-=|\\*=|/=|%=|\\^=|&=|\\|=|<<=|>>=)" - }, - { - "comment": "single equal", - "name": "keyword.operator.assignment.equal.rust", - "match": "(?])=(?!=|>)" - }, - { - "comment": "comparison operators", - "name": "keyword.operator.comparison.rust", - "match": "(=(=)?(?!>)|!=|<=|(?=)" - }, - { - "comment": "math operators", - "name": "keyword.operator.math.rust", - "match": "(([+%]|(\\*(?!\\w)))(?!=))|(-(?!>))|(/(?!/))" - }, - { - "comment": "less than, greater than (special case)", - "match": "(?:\\b|(?:(\\))|(\\])|(\\})))[ \\t]+([<>])[ \\t]+(?:\\b|(?:(\\()|(\\[)|(\\{)))", - "captures": { - "1": { - "name": "punctuation.brackets.round.rust" - }, - "2": { - "name": "punctuation.brackets.square.rust" - }, - "3": { - "name": "punctuation.brackets.curly.rust" - }, - "4": { - "name": "keyword.operator.comparison.rust" - }, - "5": { - "name": "punctuation.brackets.round.rust" - }, - "6": { - "name": "punctuation.brackets.square.rust" - }, - "7": { - "name": "punctuation.brackets.curly.rust" - } - } - }, - { - "comment": "namespace operator", - "name": "keyword.operator.namespace.rust", - "match": "::" - }, - { - "comment": "dereference asterisk", - "match": "(\\*)(?=\\w+)", - "captures": { - "1": { - "name": "keyword.operator.dereference.rust" - } - } - }, - { - "comment": "subpattern binding", - "name": "keyword.operator.subpattern.rust", - "match": "@" - }, - { - "comment": "dot access", - "name": "keyword.operator.access.dot.rust", - "match": "\\.(?!\\.)" - }, - { - "comment": "ranges, range patterns", - "name": "keyword.operator.range.rust", - "match": "\\.{2}(=|\\.)?" - }, - { - "comment": "colon", - "name": "keyword.operator.key-value.rust", - "match": ":(?!:)" - }, - { - "comment": "dashrocket, skinny arrow", - "name": "keyword.operator.arrow.skinny.rust", - "match": "->" - }, - { - "comment": "hashrocket, fat arrow", - "name": "keyword.operator.arrow.fat.rust", - "match": "=>" - }, - { - "comment": "dollar macros", - "name": "keyword.operator.macro.dollar.rust", - "match": "\\$" - }, - { - "comment": "question mark operator, questionably sized, macro kleene matcher", - "name": "keyword.operator.question.rust", - "match": "\\?" - } - ] - }, - "interpolations": { - "comment": "curly brace interpolations", - "name": "meta.interpolation.rust", - "match": "({)[^\"{}]*(})", - "captures": { - "1": { - "name": "punctuation.definition.interpolation.rust" - }, - "2": { - "name": "punctuation.definition.interpolation.rust" - } - } - }, - "lifetimes": { - "patterns": [ - { - "comment": "named lifetime parameters", - "match": "(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b", - "captures": { - "1": { - "name": "punctuation.definition.lifetime.rust" - }, - "2": { - "name": "entity.name.type.lifetime.rust" - } - } - }, - { - "comment": "borrowing references to named lifetimes", - "match": "(\\&)(['])([a-zA-Z_][0-9a-zA-Z_]*)(?!['])\\b", - "captures": { - "1": { - "name": "keyword.operator.borrow.rust" - }, - "2": { - "name": "punctuation.definition.lifetime.rust" - }, - "3": { - "name": "entity.name.type.lifetime.rust" - } - } - } - ] - }, - "macros": { - "patterns": [ - { - "comment": "macros", - "name": "meta.macro.rust", - "match": "(([a-z_][A-Za-z0-9_]*!)|([A-Z_][A-Za-z0-9_]*!))", - "captures": { - "2": { - "name": "entity.name.function.macro.rust" - }, - "3": { - "name": "entity.name.type.macro.rust" - } - } - } - ] - }, - "namespaces": { - "patterns": [ - { - "comment": "namespace (non-type, non-function path segment)", - "match": "(?", - "endCaptures": { - "0": { - "name": "punctuation.brackets.angle.rust" - } - }, - "patterns": [ - { - "include": "#block-comments" - }, - { - "include": "#comments" - }, - { - "include": "#keywords" - }, - { - "include": "#lvariables" - }, - { - "include": "#lifetimes" - }, - { - "include": "#punctuation" - }, - { - "include": "#types" - }, - { - "include": "#variables" - } - ] - }, - { - "comment": "primitive types", - "name": "entity.name.type.primitive.rust", - "match": "\\b(bool|char|str)\\b" - }, - { - "comment": "trait declarations", - "match": "\\b(trait)\\s+([A-Z][A-Za-z0-9]*)\\b", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "entity.name.type.trait.rust" - } - } - }, - { - "comment": "struct declarations", - "match": "\\b(struct)\\s+([A-Z][A-Za-z0-9]*)\\b", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "entity.name.type.struct.rust" - } - } - }, - { - "comment": "enum declarations", - "match": "\\b(enum)\\s+([A-Z][A-Za-z0-9_]*)\\b", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "entity.name.type.enum.rust" - } - } - }, - { - "comment": "type declarations", - "match": "\\b(type)\\s+([A-Z][A-Za-z0-9_]*)\\b", - "captures": { - "1": { - "name": "storage.type.rust" - }, - "2": { - "name": "entity.name.type.declaration.rust" - } - } - }, - { - "comment": "types", - "name": "entity.name.type.rust", - "match": "\\b[A-Z][A-Za-z0-9]*\\b(?!!)" - } - ] - }, - "gtypes": { - "patterns": [ - { - "comment": "option types", - "name": "entity.name.type.option.rust", - "match": "\\b(Some|None)\\b" - }, - { - "comment": "result types", - "name": "entity.name.type.result.rust", - "match": "\\b(Ok|Err)\\b" - } - ] - }, - "punctuation": { - "patterns": [ - { - "comment": "comma", - "name": "punctuation.comma.rust", - "match": "," - }, - { - "comment": "curly braces", - "name": "punctuation.brackets.curly.rust", - "match": "[{}]" - }, - { - "comment": "parentheses, round brackets", - "name": "punctuation.brackets.round.rust", - "match": "[()]" - }, - { - "comment": "semicolon", - "name": "punctuation.semi.rust", - "match": ";" - }, - { - "comment": "square brackets", - "name": "punctuation.brackets.square.rust", - "match": "[\\[\\]]" - }, - { - "comment": "angle brackets", - "name": "punctuation.brackets.angle.rust", - "match": "(?]" - } - ] - }, - "strings": { - "patterns": [ - { - "comment": "double-quoted strings and byte strings", - "name": "string.quoted.double.rust", - "begin": "(b?)(\")", - "beginCaptures": { - "1": { - "name": "string.quoted.byte.raw.rust" - }, - "2": { - "name": "punctuation.definition.string.rust" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.rust" - } - }, - "patterns": [ - { - "include": "#escapes" - }, - { - "include": "#interpolations" - } - ] - }, - { - "comment": "double-quoted raw strings and raw byte strings", - "name": "string.quoted.double.rust", - "begin": "(b?r)(#*)(\")", - "beginCaptures": { - "1": { - "name": "string.quoted.byte.raw.rust" - }, - "2": { - "name": "punctuation.definition.string.raw.rust" - }, - "3": { - "name": "punctuation.definition.string.rust" - } - }, - "end": "(\")(\\2)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.rust" - }, - "2": { - "name": "punctuation.definition.string.raw.rust" - } - } - }, - { - "comment": "characters and bytes", - "name": "string.quoted.single.char.rust", - "begin": "(b)?(')", - "beginCaptures": { - "1": { - "name": "string.quoted.byte.raw.rust" - }, - "2": { - "name": "punctuation.definition.char.rust" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.char.rust" - } - }, - "patterns": [ - { - "include": "#escapes" - } - ] - } - ] - }, - "lvariables": { - "patterns": [ - { - "comment": "self", - "name": "variable.language.self.rust", - "match": "\\b[Ss]elf\\b" - }, - { - "comment": "super", - "name": "variable.language.super.rust", - "match": "\\bsuper\\b" - } - ] - }, - "variables": { - "patterns": [ - { - "comment": "variables", - "name": "variable.other.rust", - "match": "\\b(? - where A: B -{ } - -impl Foo for C - where A: B -{ } - -impl Foo for C -{ - fn foo -> C - where A: B - { } -} - -fn foo -> C - where A: B -{ } - -struct Foo - where A: B -{ } - -trait Foo : C - where A: B -{ } \ No newline at end of file diff --git a/extensions/rust/test/colorize-fixtures/test.rs b/extensions/rust/test/colorize-fixtures/test.rs deleted file mode 100644 index 1f5a1873d33..00000000000 --- a/extensions/rust/test/colorize-fixtures/test.rs +++ /dev/null @@ -1,15 +0,0 @@ -use std::io; - -fn main() { - println!("Guess the number!"); - - println!("Please input your guess."); - - let mut guess = String::new(); - - io::stdin().read_line(&mut guess) - .ok() - .expect("Failed to read line"); - - println!("You guessed: {}", guess); -} \ No newline at end of file diff --git a/extensions/rust/test/colorize-results/test-6611_rs.json b/extensions/rust/test/colorize-results/test-6611_rs.json deleted file mode 100644 index 598893df28f..00000000000 --- a/extensions/rust/test/colorize-results/test-6611_rs.json +++ /dev/null @@ -1,1542 +0,0 @@ -[ - { - "c": "impl", - "t": "source.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "where", - "t": "source.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ":", - "t": "source.rust keyword.operator.key-value.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "impl", - "t": "source.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.rust keyword.control.rust", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "where", - "t": "source.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ":", - "t": "source.rust keyword.operator.key-value.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "impl", - "t": "source.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.rust keyword.control.rust", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fn", - "t": "source.rust meta.function.definition.rust keyword.other.fn.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.rust meta.function.definition.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "<", - "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.rust meta.function.definition.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.rust meta.function.definition.rust keyword.operator.arrow.skinny.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "where", - "t": "source.rust meta.function.definition.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ":", - "t": "source.rust meta.function.definition.rust keyword.operator.key-value.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.rust meta.function.definition.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fn", - "t": "source.rust meta.function.definition.rust keyword.other.fn.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.rust meta.function.definition.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "<", - "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.rust meta.function.definition.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.rust meta.function.definition.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.rust meta.function.definition.rust keyword.operator.arrow.skinny.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "where", - "t": "source.rust meta.function.definition.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ":", - "t": "source.rust meta.function.definition.rust keyword.operator.key-value.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust meta.function.definition.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.rust meta.function.definition.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "struct", - "t": "source.rust storage.type.rust", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.rust entity.name.type.struct.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "where", - "t": "source.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ":", - "t": "source.rust keyword.operator.key-value.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "trait", - "t": "source.rust storage.type.rust", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Foo", - "t": "source.rust entity.name.type.trait.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.rust punctuation.brackets.angle.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.rust keyword.operator.key-value.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "where", - "t": "source.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ":", - "t": "source.rust keyword.operator.key-value.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/rust/test/colorize-results/test_rs.json b/extensions/rust/test/colorize-results/test_rs.json deleted file mode 100644 index 72f3f332437..00000000000 --- a/extensions/rust/test/colorize-results/test_rs.json +++ /dev/null @@ -1,893 +0,0 @@ -[ - { - "c": "use", - "t": "source.rust meta.use.rust keyword.other.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust meta.use.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "std", - "t": "source.rust meta.use.rust entity.name.namespace.rust", - "r": { - "dark_plus": "entity.name.namespace: #4EC9B0", - "light_plus": "entity.name.namespace: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.namespace: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.rust meta.use.rust keyword.operator.namespace.rust", - "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" - } - }, - { - "c": "io", - "t": "source.rust meta.use.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.rust meta.use.rust punctuation.semi.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fn", - "t": "source.rust meta.function.definition.rust keyword.other.fn.rust", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "main", - "t": "source.rust meta.function.definition.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.rust meta.function.definition.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust meta.function.definition.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.rust meta.function.definition.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println!", - "t": "source.rust meta.macro.rust entity.name.function.macro.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Guess the number!", - "t": "source.rust string.quoted.double.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.rust punctuation.semi.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println!", - "t": "source.rust meta.macro.rust entity.name.function.macro.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Please input your guess.", - "t": "source.rust string.quoted.double.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.rust punctuation.semi.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.rust storage.type.rust", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "mut", - "t": "source.rust storage.modifier.mut.rust", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "guess", - "t": "source.rust variable.other.rust", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.rust keyword.operator.assignment.equal.rust", - "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" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "String", - "t": "source.rust entity.name.type.rust", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.rust keyword.operator.namespace.rust", - "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" - } - }, - { - "c": "new", - "t": "source.rust meta.function.call.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.rust punctuation.semi.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "io", - "t": "source.rust entity.name.namespace.rust", - "r": { - "dark_plus": "entity.name.namespace: #4EC9B0", - "light_plus": "entity.name.namespace: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.namespace: #4EC9B0" - } - }, - { - "c": "::", - "t": "source.rust keyword.operator.namespace.rust", - "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" - } - }, - { - "c": "stdin", - "t": "source.rust meta.function.call.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.rust keyword.operator.access.dot.rust", - "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" - } - }, - { - "c": "read_line", - "t": "source.rust meta.function.call.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&", - "t": "source.rust meta.function.call.rust keyword.operator.borrow.and.rust", - "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" - } - }, - { - "c": "mut", - "t": "source.rust meta.function.call.rust storage.modifier.mut.rust", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.rust meta.function.call.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "guess", - "t": "source.rust meta.function.call.rust variable.other.rust", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.rust keyword.operator.access.dot.rust", - "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" - } - }, - { - "c": "ok", - "t": "source.rust meta.function.call.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.rust keyword.operator.access.dot.rust", - "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" - } - }, - { - "c": "expect", - "t": "source.rust meta.function.call.rust entity.name.function.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.rust meta.function.call.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Failed to read line", - "t": "source.rust meta.function.call.rust string.quoted.double.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.rust meta.function.call.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.rust meta.function.call.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.rust punctuation.semi.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "println!", - "t": "source.rust meta.macro.rust entity.name.function.macro.rust", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "You guessed: ", - "t": "source.rust string.quoted.double.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "{}", - "t": "source.rust string.quoted.double.rust meta.interpolation.rust punctuation.definition.interpolation.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.rust string.quoted.double.rust punctuation.definition.string.rust", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.rust punctuation.comma.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "guess", - "t": "source.rust variable.other.rust", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.rust punctuation.brackets.round.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.rust punctuation.semi.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.rust punctuation.brackets.curly.rust", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/scss/.vscodeignore b/extensions/scss/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/scss/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/scss/cgmanifest.json b/extensions/scss/cgmanifest.json deleted file mode 100644 index 12247769ce2..00000000000 --- a/extensions/scss/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "atom/language-sass", - "repositoryUrl": "https://github.com/atom/language-sass", - "commitHash": "f52ab12f7f9346cc2568129d8c4419bd3d506b47" - } - }, - "license": "MIT", - "description": "The file syntaxes/scss.json was derived from the Atom package https://github.com/atom/language-sass which was originally converted from the TextMate bundle https://github.com/alexsancho/SASS.tmbundle.", - "version": "0.62.1" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/scss/language-configuration.json b/extensions/scss/language-configuration.json deleted file mode 100644 index bdf0984ec18..00000000000 --- a/extensions/scss/language-configuration.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "comments": { - "blockComment": ["/*", "*/"], - "lineComment": "//" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}", "notIn": ["string", "comment"] }, - { "open": "[", "close": "]", "notIn": ["string", "comment"] }, - { "open": "(", "close": ")", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string", "comment"] }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ], - "folding": { - "markers": { - "start": "^\\s*\\/\\*\\s*#region\\b\\s*(.*?)\\s*\\*\\/", - "end": "^\\s*\\/\\*\\s*#endregion\\b.*\\*\\/" - } - } -} \ No newline at end of file diff --git a/extensions/scss/package.json b/extensions/scss/package.json deleted file mode 100644 index 39338e30e2e..00000000000 --- a/extensions/scss/package.json +++ /dev/null @@ -1,64 +0,0 @@ -{ - "name": "scss", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js atom/language-sass grammars/scss.cson ./syntaxes/scss.tmLanguage.json grammars/sassdoc.cson ./syntaxes/sassdoc.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "scss", - "aliases": ["SCSS", "scss"], - "extensions": [".scss"], - "mimetypes": ["text/x-scss", "text/scss"], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "scss", - "scopeName": "source.css.scss", - "path": "./syntaxes/scss.tmLanguage.json" - }, { - "scopeName": "source.sassdoc", - "path": "./syntaxes/sassdoc.tmLanguage.json" - }], - "problemMatchers": [{ - "name": "node-sass", - "label": "Node Sass Compiler", - "owner": "node-sass", - "fileLocation": "absolute", - "pattern": [{ - "regexp": "^{$" - }, - { - "regexp": "\\s*\"status\":\\s\\d+," - }, - { - "regexp": "\\s*\"file\":\\s\"(.*)\",", - "file": 1 - }, - { - "regexp": "\\s*\"line\":\\s(\\d+),", - "line": 1 - }, - { - "regexp": "\\s*\"column\":\\s(\\d+),", - "column": 1 - }, - { - "regexp": "\\s*\"message\":\\s\"(.*)\",", - "message": 1 - }, - { - "regexp": "\\s*\"formatted\":\\s(.*)" - }, - { - "regexp": "^}$" - } - ] - }] - } -} diff --git a/extensions/scss/package.nls.json b/extensions/scss/package.nls.json deleted file mode 100644 index f328492b249..00000000000 --- a/extensions/scss/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "SCSS Language Basics", - "description": "Provides syntax highlighting, bracket matching and folding in SCSS files." -} \ No newline at end of file diff --git a/extensions/scss/syntaxes/sassdoc.tmLanguage.json b/extensions/scss/syntaxes/sassdoc.tmLanguage.json deleted file mode 100644 index 030cda708d4..00000000000 --- a/extensions/scss/syntaxes/sassdoc.tmLanguage.json +++ /dev/null @@ -1,354 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-sass/blob/master/grammars/sassdoc.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-sass/commit/303bbf0c250fe380b9e57375598cfd916110758b", - "name": "SassDoc", - "scopeName": "source.sassdoc", - "patterns": [ - { - "match": "(?x)\n((@)(?:access))\n\\s+\n(private|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "constant.language.access-type.sassdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "entity.name.type.instance.sassdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.sassdoc" - }, - "5": { - "name": "constant.other.email.link.underline.sassdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.sassdoc" - } - } - }, - { - "name": "meta.example.css.scss.sassdoc", - "begin": "(?x)\n((@)example)\n\\s+\n(css|scss)", - "end": "(?=@|///$)", - "beginCaptures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "variable.other.sassdoc" - } - }, - "patterns": [ - { - "match": "^///\\s+" - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.css.scss", - "patterns": [ - { - "include": "source.css.scss" - } - ] - } - } - } - ] - }, - { - "name": "meta.example.html.sassdoc", - "begin": "(?x)\n((@)example)\n\\s+\n(markup)", - "end": "(?=@|///$)", - "beginCaptures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "variable.other.sassdoc" - } - }, - "patterns": [ - { - "match": "^///\\s+" - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.html", - "patterns": [ - { - "include": "source.html" - } - ] - } - } - } - ] - }, - { - "name": "meta.example.js.sassdoc", - "begin": "(?x)\n((@)example)\n\\s+\n(javascript)", - "end": "(?=@|///$)", - "beginCaptures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "variable.other.sassdoc" - } - }, - "patterns": [ - { - "match": "^///\\s+" - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.js", - "patterns": [ - { - "include": "source.js" - } - ] - } - } - } - ] - }, - { - "match": "(?x)\n((@)link)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "variable.other.link.underline.sassdoc" - }, - "4": { - "name": "entity.name.type.instance.sassdoc" - } - } - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|param|parameter|requires?|see|colors?|fonts?|ratios?|sizes?)\n)\n\\s+\n(\n [A-Za-z_$%]\n [\\-\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "variable.other.sassdoc" - } - } - }, - { - "begin": "((@)(?:arg|argument|param|parameter|prop|property|requires?|see|sizes?))\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#sassdoctype" - }, - { - "match": "([A-Za-z_$%][\\-\\w$.\\[\\]]*)", - "name": "variable.other.sassdoc" - }, - { - "name": "variable.other.sassdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else (sorry)\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.sassdoc" - }, - "2": { - "name": "keyword.operator.assignment.sassdoc" - }, - "3": { - "name": "source.embedded.js", - "patterns": [ - { - "include": "source.js" - } - ] - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.sassdoc" - }, - "5": { - "name": "invalid.illegal.syntax.sassdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:returns?|throws?|exception|outputs?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - } - }, - "end": "(?=\\s|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#sassdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:type)\n)\n\\s+\n(\n (?:\n [A-Za-z |]+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "entity.name.type.instance.sassdoc", - "patterns": [ - { - "include": "#sassdoctypedelimiter" - } - ] - } - } - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|group|name|requires?|see|icons?)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.sassdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.sassdoc" - }, - "3": { - "name": "entity.name.type.instance.sassdoc" - } - } - }, - { - "name": "storage.type.class.sassdoc", - "match": "(?x)\n(@)\n(?:access|alias|author|content|deprecated|example|exception|group\n|ignore|name|prop|property|requires?|returns?|see|since|throws?|todo\n|type|outputs?)\n\\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.sassdoc" - } - } - } - ], - "repository": { - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=$)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=$)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "sassdoctypedelimiter": { - "match": "(\\|)", - "captures": { - "1": { - "name": "punctuation.definition.delimiter.sassdoc" - } - } - }, - "sassdoctype": { - "patterns": [ - { - "name": "invalid.illegal.type.sassdoc", - "match": "\\G{(?:[^}*]|\\*[^/}])+$" - }, - { - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.sassdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.sassdoc" - } - }, - "contentName": "entity.name.type.instance.sassdoc", - "end": "((}))\\s*|(?=$)", - "endCaptures": { - "1": { - "name": "entity.name.type.instance.sassdoc" - }, - "2": { - "name": "punctuation.definition.bracket.curly.end.sassdoc" - } - }, - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/scss/syntaxes/scss.tmLanguage.json b/extensions/scss/syntaxes/scss.tmLanguage.json deleted file mode 100644 index 21ed870a5cc..00000000000 --- a/extensions/scss/syntaxes/scss.tmLanguage.json +++ /dev/null @@ -1,1879 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-sass/blob/master/grammars/scss.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-sass/commit/f52ab12f7f9346cc2568129d8c4419bd3d506b47", - "name": "SCSS", - "scopeName": "source.css.scss", - "patterns": [ - { - "include": "#variable_setting" - }, - { - "include": "#at_rule_forward" - }, - { - "include": "#at_rule_use" - }, - { - "include": "#at_rule_include" - }, - { - "include": "#at_rule_import" - }, - { - "include": "#general" - }, - { - "include": "#flow_control" - }, - { - "include": "#rules" - }, - { - "include": "#property_list" - }, - { - "include": "#at_rule_mixin" - }, - { - "include": "#at_rule_media" - }, - { - "include": "#at_rule_function" - }, - { - "include": "#at_rule_charset" - }, - { - "include": "#at_rule_option" - }, - { - "include": "#at_rule_namespace" - }, - { - "include": "#at_rule_fontface" - }, - { - "include": "#at_rule_page" - }, - { - "include": "#at_rule_keyframes" - }, - { - "include": "#at_rule_at_root" - }, - { - "include": "#at_rule_supports" - }, - { - "match": ";", - "name": "punctuation.terminator.rule.css" - } - ], - "repository": { - "at_rule_charset": { - "begin": "\\s*((@)charset\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.at-rule.charset.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*((?=;|$))", - "name": "meta.at-rule.charset.scss", - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#string_single" - }, - { - "include": "#string_double" - } - ] - }, - "at_rule_content": { - "begin": "\\s*((@)content\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.content.scss" - } - }, - "end": "\\s*((?=;))", - "name": "meta.content.scss", - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#selectors" - }, - { - "include": "#property_values" - } - ] - }, - "at_rule_each": { - "begin": "\\s*((@)each\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.each.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*((?=}))", - "name": "meta.at-rule.each.scss", - "patterns": [ - { - "match": "\\b(in|,)\\b", - "name": "keyword.control.operator" - }, - { - "include": "#variable" - }, - { - "include": "#property_values" - }, - { - "include": "$self" - } - ] - }, - "at_rule_else": { - "begin": "\\s*((@)else(\\s*(if)?))\\s*", - "captures": { - "1": { - "name": "keyword.control.else.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*(?={)", - "name": "meta.at-rule.else.scss", - "patterns": [ - { - "include": "#conditional_operators" - }, - { - "include": "#variable" - }, - { - "include": "#property_values" - } - ] - }, - "at_rule_extend": { - "begin": "\\s*((@)extend\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.at-rule.extend.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*(?=;)", - "name": "meta.at-rule.extend.scss", - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#selectors" - }, - { - "include": "#property_values" - } - ] - }, - "at_rule_fontface": { - "patterns": [ - { - "begin": "^\\s*((@)font-face\\b)", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.fontface.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*(?={)", - "name": "meta.at-rule.fontface.scss", - "patterns": [ - { - "include": "#function_attributes" - } - ] - } - ] - }, - "at_rule_for": { - "begin": "\\s*((@)for\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.for.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*(?={)", - "name": "meta.at-rule.for.scss", - "patterns": [ - { - "match": "(==|!=|<=|>=|<|>|from|to|through)", - "name": "keyword.control.operator" - }, - { - "include": "#variable" - }, - { - "include": "#property_values" - }, - { - "include": "$self" - } - ] - }, - "at_rule_forward": { - "begin": "\\s*((@)forward\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.at-rule.forward.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*(?=;)", - "name": "meta.at-rule.forward.scss", - "patterns": [ - { - "match": "\\b(as|hide|show)\\b", - "name": "keyword.control.operator" - }, - { - "match": "\\b([\\w-]+)(\\*)", - "captures": { - "1": { - "name": "entity.other.attribute-name.module.scss" - }, - "2": { - "name": "punctuation.definition.wildcard.scss" - } - } - }, - { - "match": "\\b[\\w-]+\\b", - "name": "entity.name.function.scss" - }, - { - "include": "#variable" - }, - { - "include": "#string_single" - }, - { - "include": "#string_double" - }, - { - "include": "#comment_line" - }, - { - "include": "#comment_block" - } - ] - }, - "at_rule_function": { - "patterns": [ - { - "begin": "\\s*((@)function\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.at-rule.function.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - }, - "3": { - "name": "entity.name.function.scss" - } - }, - "end": "\\s*(?={)", - "name": "meta.at-rule.function.scss", - "patterns": [ - { - "include": "#function_attributes" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.control.at-rule.function.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - }, - "3": { - "name": "entity.name.function.scss" - } - }, - "match": "\\s*((@)function\\b)\\s*", - "name": "meta.at-rule.function.scss" - } - ] - }, - "at_rule_if": { - "begin": "\\s*((@)if\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.if.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*(?={)", - "name": "meta.at-rule.if.scss", - "patterns": [ - { - "include": "#conditional_operators" - }, - { - "include": "#variable" - }, - { - "include": "#property_values" - } - ] - }, - "at_rule_import": { - "begin": "\\s*((@)import\\b)\\s*", - "captures": { - "1": { - "name": "keyword.control.at-rule.import.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*((?=;)|(?=}))", - "name": "meta.at-rule.import.scss", - "patterns": [ - { - "include": "#variable" - }, - { - "include": "#string_single" - }, - { - "include": "#string_double" - }, - { - "include": "#functions" - }, - { - "include": "#comment_line" - } - ] - }, - "at_rule_include": { - "patterns": [ - { - "begin": "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "variable.scss" - }, - "2": { - "name": "punctuation.access.module.scss" - }, - "3": { - "name": "entity.name.function.scss" - }, - "4": { - "name": "punctuation.definition.parameters.begin.bracket.round.scss" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.bracket.round.scss" - } - }, - "name": "meta.at-rule.include.scss", - "patterns": [ - { - "include": "#function_attributes" - } - ] - }, - { - "match": "(?<=@include)\\s+(?:([\\w-]+)\\s*(\\.))?([\\w-]+)", - "captures": { - "0": { - "name": "meta.at-rule.include.scss" - }, - "1": { - "name": "variable.scss" - }, - "2": { - "name": "punctuation.access.module.scss" - }, - "3": { - "name": "entity.name.function.scss" - } - } - }, - { - "match": "((@)include)\\b", - "captures": { - "0": { - "name": "meta.at-rule.include.scss" - }, - "1": { - "name": "keyword.control.at-rule.include.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - } - } - ] - }, - "at_rule_keyframes": { - "begin": "(?<=^|\\s)(@)(?:-(?:webkit|moz)-)?keyframes\\b", - "beginCaptures": { - "0": { - "name": "keyword.control.at-rule.keyframes.scss" - }, - "1": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "(?<=})", - "name": "meta.at-rule.keyframes.scss", - "patterns": [ - { - "match": "(?<=@keyframes)\\s+((?:[_A-Za-z][-\\w]|-[_A-Za-z])[-\\w]*)", - "captures": { - "1": { - "name": "entity.name.function.scss" - } - } - }, - { - "begin": "(?<=@keyframes)\\s+(\")", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.scss" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scss" - } - }, - "name": "string.quoted.double.scss", - "contentName": "entity.name.function.scss", - "patterns": [ - { - "match": "\\\\(\\h{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "include": "#interpolation" - } - ] - }, - { - "begin": "(?<=@keyframes)\\s+(')", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.scss" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scss" - } - }, - "name": "string.quoted.single.scss", - "contentName": "entity.name.function.scss", - "patterns": [ - { - "match": "\\\\(\\h{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "include": "#interpolation" - } - ] - }, - { - "begin": "{", - "beginCaptures": { - "0": { - "name": "punctuation.section.keyframes.begin.scss" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.section.keyframes.end.scss" - } - }, - "patterns": [ - { - "match": "\\b(?:(?:100|[1-9]\\d|\\d)%|from|to)(?=\\s*{)", - "name": "entity.other.attribute-name.scss" - }, - { - "include": "#flow_control" - }, - { - "include": "#interpolation" - }, - { - "include": "#property_list" - }, - { - "include": "#rules" - } - ] - } - ] - }, - "at_rule_media": { - "patterns": [ - { - "begin": "^\\s*((@)media)\\b", - "beginCaptures": { - "1": { - "name": "keyword.control.at-rule.media.scss" - }, - "2": { - "name": "punctuation.definition.keyword.scss" - } - }, - "end": "\\s*(?={)", - "name": "meta.at-rule.media.scss", - "patterns": [ - { - "include": "#comment_docblock" - }, - { - "include": "#comment_block" - }, - { - "include": "#comment_line" - }, - { - "match": "\\b(only)\\b", - "name": "keyword.control.operator.css.scss" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.media-query.begin.bracket.round.scss" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.media-query.end.bracket.round.scss" - } - }, - "name": "meta.property-list.media-query.scss", - "patterns": [ - { - "begin": "(?=|<|>", - "name": "keyword.operator.comparison.scss" - }, - "logical_operators": { - "match": "\\b(not|or|and)\\b", - "name": "keyword.operator.logical.scss" - }, - "map": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.map.begin.bracket.round.scss" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.map.end.bracket.round.scss" - } - }, - "name": "meta.definition.variable.map.scss", - "patterns": [ - { - "include": "#comment_docblock" - }, - { - "include": "#comment_block" - }, - { - "include": "#comment_line" - }, - { - "match": "\\b([\\w-]+)\\s*(:)", - "captures": { - "1": { - "name": "support.type.map.key.scss" - }, - "2": { - "name": "punctuation.separator.key-value.scss" - } - } - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.scss" - }, - { - "include": "#map" - }, - { - "include": "#variable" - }, - { - "include": "#property_values" - } - ] - }, - "operators": { - "match": "[-+*/](?!\\s*[-+*/])", - "name": "keyword.operator.css" - }, - "parameters": { - "patterns": [ - { - "include": "#variable" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.begin.bracket.round.scss" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.end.bracket.round.scss" - } - }, - "patterns": [ - { - "include": "#function_attributes" - } - ] - }, - { - "include": "#property_values" - }, - { - "include": "#comment_block" - }, - { - "match": "[^'\",) \\t]+", - "name": "variable.parameter.url.scss" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.scss" - } - ] - }, - "properties": { - "patterns": [ - { - "begin": "(?+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n | ; # - A semicolon\n)", - "name": "entity.other.attribute-name.class.css", - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "\\\\([0-9a-fA-F]{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "match": "\\$|}", - "name": "invalid.illegal.scss" - } - ] - } - } - }, - "selector_custom": { - "match": "\\b([a-zA-Z0-9]+(-[a-zA-Z0-9]+)+)(?=\\.|\\s++[^:]|\\s*[,\\[{]|:(link|visited|hover|active|focus|target|lang|disabled|enabled|checked|indeterminate|root|nth-(child|last-child|of-type|last-of-type)|first-child|last-child|first-of-type|last-of-type|only-child|only-of-type|empty|not|valid|invalid)(\\([0-9A-Za-z]*\\))?)", - "name": "entity.name.tag.custom.scss" - }, - "selector_id": { - "match": "(?x)\n(\\#) # Valid id-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.?\\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.id.css", - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "\\\\([0-9a-fA-F]{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "match": "\\$|}", - "name": "invalid.illegal.identifier.scss" - } - ] - } - } - }, - "selector_placeholder": { - "match": "(?x)\n(%) # Valid placeholder-name\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\.\\$ # Possible start of interpolation module scope variable\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= ; # - End of statement\n | $ # - End of the line\n | [\\s,\\#)\\[:{>+~|] # - Another selector\n | \\.[^$] # - Class selector, negating module variable\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.placeholder.css", - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "\\\\([0-9a-fA-F]{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "match": "\\$|}", - "name": "invalid.illegal.identifier.scss" - } - ] - } - } - }, - "parent_selector_suffix": { - "match": "(?x)\n(?<=&)\n(\n (?: [-a-zA-Z_0-9]|[^\\x00-\\x7F] # Valid identifier characters\n | \\\\(?:[0-9a-fA-F]{1,6}|.) # Escape sequence\n | \\#\\{ # Interpolation (escaped to avoid Coffeelint errors)\n | \\$ # Possible start of interpolation variable\n | } # Possible end of interpolation\n )+\n) # Followed by either:\n(?= $ # - End of the line\n | [\\s,.\\#)\\[:{>+~|] # - Another selector\n | /\\* # - A block comment\n)", - "name": "entity.other.attribute-name.parent-selector-suffix.css", - "captures": { - "1": { - "name": "punctuation.definition.entity.css" - }, - "2": { - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "\\\\([0-9a-fA-F]{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "match": "\\$|}", - "name": "invalid.illegal.identifier.scss" - } - ] - } - } - }, - "selector_pseudo_class": { - "patterns": [ - { - "begin": "((:)\\bnth-(?:child|last-child|of-type|last-of-type))(\\()", - "beginCaptures": { - "1": { - "name": "entity.other.attribute-name.pseudo-class.css" - }, - "2": { - "name": "punctuation.definition.entity.css" - }, - "3": { - "name": "punctuation.definition.pseudo-class.begin.bracket.round.css" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.pseudo-class.end.bracket.round.css" - } - }, - "patterns": [ - { - "include": "#interpolation" - }, - { - "match": "\\d+", - "name": "constant.numeric.css" - }, - { - "match": "(?<=\\d)n\\b|\\b(n|even|odd)\\b", - "name": "constant.other.scss" - }, - { - "match": "\\w+", - "name": "invalid.illegal.scss" - } - ] - }, - { - "include": "source.css#pseudo-classes" - }, - { - "include": "source.css#pseudo-elements" - }, - { - "include": "source.css#functional-pseudo-classes" - } - ] - }, - "selectors": { - "patterns": [ - { - "include": "source.css#tag-names" - }, - { - "include": "#selector_custom" - }, - { - "include": "#selector_class" - }, - { - "include": "#selector_id" - }, - { - "include": "#selector_pseudo_class" - }, - { - "include": "#tag_wildcard" - }, - { - "include": "#tag_parent_reference" - }, - { - "include": "source.css#pseudo-elements" - }, - { - "include": "#selector_attribute" - }, - { - "include": "#selector_placeholder" - }, - { - "include": "#parent_selector_suffix" - } - ] - }, - "string_double": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.scss" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scss" - } - }, - "name": "string.quoted.double.scss", - "patterns": [ - { - "match": "\\\\(\\h{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "include": "#interpolation" - } - ] - }, - "string_single": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.scss" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.scss" - } - }, - "name": "string.quoted.single.scss", - "patterns": [ - { - "match": "\\\\(\\h{1,6}|.)", - "name": "constant.character.escape.scss" - }, - { - "include": "#interpolation" - } - ] - }, - "tag_parent_reference": { - "match": "&", - "name": "entity.name.tag.reference.scss" - }, - "tag_wildcard": { - "match": "\\*", - "name": "entity.name.tag.wildcard.scss" - }, - "variable": { - "patterns": [ - { - "include": "#variables" - }, - { - "include": "#interpolation" - } - ] - }, - "variable_setting": { - "begin": "(?=\\$[\\w-]+\\s*:)", - "end": ";", - "endCaptures": { - "0": { - "name": "punctuation.terminator.rule.scss" - } - }, - "contentName": "meta.definition.variable.scss", - "patterns": [ - { - "match": "\\$[\\w-]+(?=\\s*:)", - "name": "variable.scss" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.scss" - } - }, - "end": "(?=;)", - "patterns": [ - { - "include": "#comment_docblock" - }, - { - "include": "#comment_block" - }, - { - "include": "#comment_line" - }, - { - "include": "#map" - }, - { - "include": "#property_values" - }, - { - "include": "#variable" - }, - { - "match": ",", - "name": "punctuation.separator.delimiter.scss" - } - ] - } - ] - }, - "variables": { - "patterns": [ - { - "match": "\\b([\\w-]+)(\\.)(\\$[\\w-]+)\\b", - "captures": { - "1": { - "name": "variable.scss" - }, - "2": { - "name": "punctuation.access.module.scss" - }, - "3": { - "name": "variable.scss" - } - } - }, - { - "match": "(\\$|\\-\\-)[A-Za-z0-9_-]+\\b", - "name": "variable.scss" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/scss/test/colorize-fixtures/test-cssvariables.scss b/extensions/scss/test/colorize-fixtures/test-cssvariables.scss deleted file mode 100644 index 28f3c7e2a8b..00000000000 --- a/extensions/scss/test/colorize-fixtures/test-cssvariables.scss +++ /dev/null @@ -1,7 +0,0 @@ -:root { - --spacing-unit: 6px; - --cell-padding: (4 * var(--spacing-unit)); -} -body { - padding-left: calc(4 * var(--spacing-unit, 5px)); -} \ No newline at end of file diff --git a/extensions/scss/test/colorize-fixtures/test.scss b/extensions/scss/test/colorize-fixtures/test.scss deleted file mode 100644 index 3fa23237ab7..00000000000 --- a/extensions/scss/test/colorize-fixtures/test.scss +++ /dev/null @@ -1,340 +0,0 @@ -// snippets from the Sass documentation at http://sass-lang.com/ - -/* css stuff */ -/* charset */ -@charset "UTF-8"; - -/* nested rules */ -#main { - width: 97%; - p, div { - font-size: 2em; - a { font-weight: bold; } - } - pre { font-size: 3em; } -} - -/* parent selector (&) */ -#main { - color: black; - a { - font-weight: bold; - &:hover { color: red; } - } -} - -/* nested properties */ -.funky { - font: 2px/3px { - family: fantasy; - size: 30em; - weight: bold; - } - color: black; -} - -/* nesting conflicts */ -tr.default { - foo: { // properties - foo : 1; - } - foo: 1px; // rule - foo.bar { // selector - foo : 1; - } - foo:bar { // selector - foo : 1; - } - foo: 1px; // rule -} - -/* extended comment syntax */ -/* This comment is - * several lines long. - * since it uses the CSS comment syntax, - * it will appear in the CSS output. */ -body { color: black; } - -// These comments are only one line long each. -// They won't appear in the CSS output, -// since they use the single-line comment syntax. -a { color: green; } - -/* variables */ -$width: 5em; -$width: "Second width?" !default; -#main { - $localvar: 6em; - width: $width; - - $font-size: 12px; - $line-height: 30px; - font: #{$font-size}/#{$line-height}; -} -$name: foo; -$attr: border; -p.#{$name} { - #{$attr}-color: blue; -} - -/* variable declaration with whitespaces */ -// Set the color of your columns -$grid-background-column-color : rgba(100, 100, 225, 0.25) !default; - -/* operations*/ -p { - width: (1em + 2em) * 3; - color: #010203 + #040506; - font-family: sans- + "serif"; - margin: 3px + 4px auto; - content: "I ate #{5 + 10} pies!"; - color: hsl(0, 100%, 50%); - color: hsl($hue: 0, $saturation: 100%, $lightness: 50%); -} -/* functions*/ -$grid-width: 40px; -$gutter-width: 10px; -@function grid-width($n) { - @return $n * $grid-width + ($n - 1) * $gutter-width; -} -#sidebar { width: grid-width(5); } - -/* @import */ -@import "foo.scss"; -$family: unquote("Droid+Sans"); -@import "rounded-corners", url("http://fonts.googleapis.com/css?family=#{$family}"); -#main { - @import "example"; -} - -/* @media */ -.sidebar { - width: 300px; - @media screen and (orientation: landscape) { - width: 500px; - } -} - -/* @extend */ -.error { - border: 1px #f00; - background-color: #fdd; -} -.seriousError { - @extend .error; - border-width: 3px; -} -#context a%extreme { - color: blue; - font-weight: bold; - font-size: 2em; -} -.notice { - @extend %extreme !optional; -} - -/* @debug and @warn */ -@debug 10em + 12em; -@mixin adjust-location($x, $y) { - @if unitless($x) { - @warn "Assuming #{$x} to be in pixels"; - $x: 1px * $x; - } - @if unitless($y) { - @warn "Assuming #{$y} to be in pixels"; - $y: 1px * $y; - } - position: relative; left: $x; top: $y; -} - -/* control directives */ - -/* if statement */ -p { - @if 1 + 1 == 2 { border: 1px solid; } - @if 5 < 3 { border: 2px dotted; } - @if null { border: 3px double; } -} - -/* if else statement */ -$type: monster; -p { - @if $type == ocean { - color: blue; - } @else { - color: black; - } -} - -/* for statement */ -@for $i from 1 through 3 { - .item-#{$i} { width: 2em * $i; } -} - -/* each statement */ -@each $animal in puma, sea-slug, egret, salamander { - .#{$animal}-icon { - background-image: url('/images/#{$animal}.png'); - } -} - -/* while statement */ -$i: 6; -@while $i > 0 { - .item-#{$i} { width: 2em * $i; } - $i: $i - 2; -} - -/* function with controlstatements */ -@function foo($total, $a) { - @for $i from 0 to $total { - @if (unit($a) == "%") and ($i == ($total - 1)) { - $z: 100%; - @return '1'; - } - } - @return $grid; -} - -/* @mixin simple*/ -@mixin large-text { - font: { - family: Arial; - size: 20px; - weight: bold; - } - color: #ff0000; -} -.page-title { - @include large-text; - padding: 4px; -} - -/* mixin with parameters */ -@mixin sexy-border($color, $width: 1in) { - border: { - color: $color; - width: $width; - style: dashed; - } -} -p { @include sexy-border(blue); } - -/* mixin with varargs */ -@mixin box-shadow($shadows...) { - -moz-box-shadow: $shadows; - -webkit-box-shadow: $shadows; - box-shadow: $shadows; -} -.shadows { - @include box-shadow(0px 4px 5px #666, 2px 6px 10px #999); -} - -/* include with varargs */ -@mixin colors($text, $background, $border) { - color: $text; - background-color: $background; - border-color: $border; -} -$values: #ff0000, #00ff00, #0000ff; -.primary { - @include colors($values...); -} - -/* include with body */ -@mixin apply-to-ie6-only { - * html { - @content; - } -} -@include apply-to-ie6-only { - #logo { - background-image: url(/logo.gif); - } -} - -@if $attr { - @mixin apply-to-ie6-only { - } -} - - -/* attributes */ -[rel="external"]::after { - content: 's'; -} -/*page */ -@page :left { - margin-left: 4cm; - margin-right: 3cm; -} - -/* missing semicolons */ -tr.default { - foo.bar { - $foo: 1px - } - foo: { - foo : white - } - foo.bar1 { - @extend tr.default - } - foo.bar2 { - @import "compass" - } - bar: black -} - -/* rules without whitespace */ -legend {foo{a:s}margin-top:0;margin-bottom:#123;margin-top:s(1)} - -/* extend with interpolation variable */ -@mixin error($a: false) { - @extend .#{$a}; - @extend ##{$a}; -} -#bar {a: 1px;} -.bar {b: 1px;} -foo { - @include error('bar'); -} - -/* css3: @font face */ -@font-face { font-family: Delicious; src: url('Delicious-Roman.otf'); } - -/* rule names with variables */ -.orbit-#{$d}-prev { - #{$d}-style: 0; - foo-#{$d}: 1; - #{$d}-bar-#{$d}: 2; - foo-#{$d}-bar: 1; -} - -/* keyframes */ -@-webkit-keyframes NAME-YOUR-ANIMATION { - 0% { opacity: 0; } - 100% { opacity: 1; } -} -@-moz-keyframes NAME-YOUR-ANIMATION { - 0% { opacity: 0; } - 100% { opacity: 1; } -} -@-o-keyframes NAME-YOUR-ANIMATION { - 0% { opacity: 0; } - 100% { opacity: 1; } -} -@keyframes NAME-YOUR-ANIMATION { - 0% { opacity: 0; } - 100% { opacity: 1; } -} - -/* string escaping */ -[data-icon='test-1']:before { - content:'\\'; -} -/* a comment */ -$var1: '\''; -$var2: "\""; -/* another comment */ - diff --git a/extensions/scss/test/colorize-results/test-cssvariables_scss.json b/extensions/scss/test/colorize-results/test-cssvariables_scss.json deleted file mode 100644 index c2862cddcb8..00000000000 --- a/extensions/scss/test/colorize-results/test-cssvariables_scss.json +++ /dev/null @@ -1,552 +0,0 @@ -[ - { - "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" - } - }, - { - "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" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "--spacing-unit", - "t": "source.css.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "6", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "--cell-padding", - "t": "source.css.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.definition.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "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: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.definition.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "body", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "padding-left", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "calc", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "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: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ",", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "))", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/scss/test/colorize-results/test_scss.json b/extensions/scss/test/colorize-results/test_scss.json deleted file mode 100644 index 66f3e1f376d..00000000000 --- a/extensions/scss/test/colorize-results/test_scss.json +++ /dev/null @@ -1,21023 +0,0 @@ -[ - { - "c": "//", - "t": "source.css.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " snippets from the Sass documentation at http://sass-lang.com/", - "t": "source.css.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " css stuff ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " charset ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.charset.scss keyword.control.at-rule.charset.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "charset", - "t": "source.css.scss meta.at-rule.charset.scss keyword.control.at-rule.charset.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.charset.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.charset.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "UTF-8", - "t": "source.css.scss meta.at-rule.charset.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.charset.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " nested rules ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.css.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "main", - "t": "source.css.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "97", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "%", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.percentage.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "p", - "t": "source.css.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "div", - "t": "source.css.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-size", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-weight", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "bold", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "pre", - "t": "source.css.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-size", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " parent selector (&) ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "#", - "t": "source.css.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "main", - "t": "source.css.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "black", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.css.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-weight", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "bold", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss entity.name.tag.reference.scss", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.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" - } - }, - { - "c": "hover", - "t": "source.css.scss meta.property-list.scss meta.property-list.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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "red", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " nested properties ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": ".", - "t": "source.css.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "funky", - "t": "source.css.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font", - "t": "source.css.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "/", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.mathematical-symbols.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " {", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "family", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ": ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fantasy", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.font-name.css", - "r": { - "dark_plus": "support.constant.font-name: #CE9178", - "light_plus": "support.constant.font-name: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.font-name: #0451A5", - "hc_black": "support.constant.font-name: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "size", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "30", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "weight", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "bold", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " color: black", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " nesting conflicts ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "tr", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": ".", - "t": "source.css.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "default", - "t": "source.css.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ": ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " properties", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.css.scss meta.property-list.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " rule", - "t": "source.css.scss meta.property-list.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "bar", - "t": "source.css.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " selector", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "bar { ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " selector", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " foo : ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " foo: 1px", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.css.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " rule", - "t": "source.css.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "}", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " extended comment syntax ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " This comment is", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * several lines long.", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * since it uses the CSS comment syntax,", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * it will appear in the CSS output. ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "body", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "black", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.css.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " These comments are only one line long each.", - "t": "source.css.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.css.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " They won't appear in the CSS output,", - "t": "source.css.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.css.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " since they use the single-line comment syntax.", - "t": "source.css.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "a", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "green", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " variables ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "$width", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.definition.variable.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$width", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.definition.variable.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Second width?", - "t": "source.css.scss meta.definition.variable.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.definition.variable.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "!default", - "t": "source.css.scss meta.definition.variable.scss keyword.other.default.scss", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "main", - "t": "source.css.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$localvar", - "t": "source.css.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "6", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$width", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$font-size", - "t": "source.css.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "12", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$line-height", - "t": "source.css.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "30", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font", - "t": "source.css.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$font-size", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "/", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$line-height", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$name", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " foo", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$attr", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border", - "t": "source.css.scss meta.definition.variable.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "p", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": ".", - "t": "source.css.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "#{", - "t": "source.css.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$name", - "t": "source.css.scss entity.other.attribute-name.class.css variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$attr", - "t": "source.css.scss meta.property-list.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "-color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "blue", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " variable declaration with whitespaces ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "//", - "t": "source.css.scss comment.line.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Set the color of your columns", - "t": "source.css.scss comment.line.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "$grid-background-column-color", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rgba", - "t": "source.css.scss meta.definition.variable.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.definition.variable.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": ",", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": ",", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "225", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": ",", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0.25", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.definition.variable.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "!default", - "t": "source.css.scss meta.definition.variable.scss keyword.other.default.scss", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " operations", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "p", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.definition.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.definition.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "010203", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "040506", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-family", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sans- ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "serif", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "margin", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "auto", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "content", - "t": "source.css.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "I ate ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "5", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss variable.interpolation.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss variable.interpolation.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "+", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss variable.interpolation.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss variable.interpolation.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "10", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss variable.interpolation.scss 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" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " pies!", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "hsl", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ",", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "%", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.percentage.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" - } - }, - { - "c": ",", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "50", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "%", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.percentage.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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "hsl", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$hue", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.parameter.url.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ",", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$saturation", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.parameter.url.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "%", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.percentage.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" - } - }, - { - "c": ",", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$lightness", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.parameter.url.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "50", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "%", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.percentage.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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " functions", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "$grid-width", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "40", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$gutter-width", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.definition.variable.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.function.scss keyword.control.at-rule.function.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "function", - "t": "source.css.scss meta.at-rule.function.scss keyword.control.at-rule.function.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "grid-width", - "t": "source.css.scss meta.at-rule.function.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.function.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$n", - "t": "source.css.scss meta.at-rule.function.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.function.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss keyword.control.return.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "return", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss keyword.control.return.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$n", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$grid-width", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss punctuation.definition.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$n", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss 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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss punctuation.definition.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$gutter-width", - "t": "source.css.scss meta.property-list.scss meta.at-rule.return.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "sidebar", - "t": "source.css.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "grid-width", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @import ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.import.scss keyword.control.at-rule.import.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "import", - "t": "source.css.scss meta.at-rule.import.scss keyword.control.at-rule.import.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.import.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "foo.scss", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$family", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unquote", - "t": "source.css.scss meta.definition.variable.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.definition.variable.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.definition.variable.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Droid+Sans", - "t": "source.css.scss meta.definition.variable.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.definition.variable.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.definition.variable.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.import.scss keyword.control.at-rule.import.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "import", - "t": "source.css.scss meta.at-rule.import.scss keyword.control.at-rule.import.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.import.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "rounded-corners", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.import.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "url", - "t": "source.css.scss meta.at-rule.import.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.import.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "http://fonts.googleapis.com/css?family=", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$family", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.import.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "main", - "t": "source.css.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.import.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.import.scss keyword.control.at-rule.import.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "import", - "t": "source.css.scss meta.property-list.scss meta.at-rule.import.scss keyword.control.at-rule.import.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.import.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "example", - "t": "source.css.scss meta.property-list.scss meta.at-rule.import.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.at-rule.import.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @media ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": ".", - "t": "source.css.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "sidebar", - "t": "source.css.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "300", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss keyword.control.at-rule.media.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "media", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss keyword.control.at-rule.media.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "screen", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss support.constant.media.css", - "r": { - "dark_plus": "support.constant.media: #CE9178", - "light_plus": "support.constant.media: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.media: #0451A5", - "hc_black": "support.constant.media: #CE9178" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "and", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss keyword.operator.logical.scss", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss meta.property-list.media-query.scss punctuation.definition.media-query.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "orientation", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss meta.property-list.media-query.scss meta.property-name.media-query.scss support.type.property-name.media.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss meta.property-list.media-query.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss meta.property-list.media-query.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "landscape", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss meta.property-list.media-query.scss meta.property-value.media-query.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss meta.property-list.media-query.scss punctuation.definition.media-query.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.media.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "500", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @extend ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": ".", - "t": "source.css.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "error", - "t": "source.css.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "f00", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "background-color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "fdd", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "seriousError", - "t": "source.css.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "extend", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "error", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border-width", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "context", - "t": "source.css.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " a", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "%", - "t": "source.css.scss entity.other.attribute-name.placeholder.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "extreme", - "t": "source.css.scss entity.other.attribute-name.placeholder.css", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "blue", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-weight", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "bold", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-size", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "notice", - "t": "source.css.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "extend", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "%", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.placeholder.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "extreme", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.placeholder.css", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "!optional", - "t": "source.css.scss meta.property-list.scss meta.at-rule.extend.scss keyword.other.optional.scss", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @debug and @warn ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.warn.scss keyword.control.warn.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "debug", - "t": "source.css.scss meta.at-rule.warn.scss keyword.control.warn.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " 10em + 12em", - "t": "source.css.scss meta.at-rule.warn.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "adjust-location", - "t": "source.css.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.mixin.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$x", - "t": "source.css.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$y", - "t": "source.css.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.mixin.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unitless", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$x", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss keyword.control.warn.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "warn", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss keyword.control.warn.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Assuming ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$x", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " to be in pixels", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$x", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$x", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unitless", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$y", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss keyword.control.warn.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "warn", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss keyword.control.warn.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Assuming ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$y", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " to be in pixels", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.at-rule.warn.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$y", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$y", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "position", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "relative", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "left", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$x", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "top", - "t": "source.css.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$y", - "t": "source.css.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " control directives ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " if statement ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "p", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.operator.comparison.scss", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "solid", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.operator.comparison.scss", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "dotted", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " null ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "double", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " if else statement ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "$type", - "t": "source.css.scss meta.definition.variable.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.definition.variable.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " monster", - "t": "source.css.scss meta.definition.variable.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "p", - "t": "source.css.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$type", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss keyword.operator.comparison.scss", - "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" - } - }, - { - "c": " ocean ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "blue", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.else.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.property-list.scss meta.at-rule.else.scss keyword.control.else.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "else ", - "t": "source.css.scss meta.property-list.scss meta.at-rule.else.scss keyword.control.else.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "black", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " for statement ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.for.scss keyword.control.for.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "for", - "t": "source.css.scss meta.at-rule.for.scss keyword.control.for.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.for.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "from", - "t": "source.css.scss meta.at-rule.for.scss keyword.control.operator", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.for.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "through", - "t": "source.css.scss meta.at-rule.for.scss keyword.control.operator", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.at-rule.for.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "item-", - "t": "source.css.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " each statement ", - "t": "source.css.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss keyword.control.each.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "each", - "t": "source.css.scss meta.at-rule.each.scss keyword.control.each.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$animal", - "t": "source.css.scss meta.at-rule.each.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.css.scss meta.at-rule.each.scss keyword.control.operator", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " puma, ", - "t": "source.css.scss meta.at-rule.each.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sea-slug", - "t": "source.css.scss meta.at-rule.each.scss entity.name.tag.custom.scss", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ", egret, salamander ", - "t": "source.css.scss meta.at-rule.each.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$animal", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "-icon", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "background-image", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "url", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/images/", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$animal", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".png", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " while statement ", - "t": "source.css.scss meta.at-rule.each.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ": ", - "t": "source.css.scss meta.at-rule.each.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "6", - "t": "source.css.scss meta.at-rule.each.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss keyword.control.while.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "while", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss keyword.control.while.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss keyword.operator.comparison.scss", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "item-", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "em", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.em.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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " function with controlstatements ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss keyword.control.at-rule.function.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "function", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss keyword.control.at-rule.function.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$total", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ",", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss punctuation.separator.delimiter.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$a", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss keyword.control.for.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "for", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss keyword.control.for.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "from", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss keyword.control.operator", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "to", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss keyword.control.operator", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$total", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.for.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss punctuation.definition.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "unit", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$a", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " == ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss punctuation.definition.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "and", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss keyword.operator.logical.scss", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss punctuation.definition.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$i", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " == ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss punctuation.definition.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$total", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss keyword.operator.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss 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" - } - }, - { - "c": "))", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss punctuation.definition.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$z", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.percentage.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.at-rule.return.scss keyword.control.return.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "return", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.at-rule.return.scss keyword.control.return.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.at-rule.return.scss string.quoted.single.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.at-rule.return.scss string.quoted.single.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.at-rule.return.scss string.quoted.single.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.return.scss keyword.control.return.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "return", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.return.scss keyword.control.return.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.return.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$grid", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.return.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " @mixin simple", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "large-text", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ": ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "family", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Arial", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.font-name.css", - "r": { - "dark_plus": "support.constant.font-name: #CE9178", - "light_plus": "support.constant.font-name: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.font-name: #0451A5", - "hc_black": "support.constant.font-name: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "size", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "20", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "weight", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "bold", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "ff0000", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "page-title", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "large-text", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "padding", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " mixin with parameters ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sexy-border", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$color", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$width", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss 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" - } - }, - { - "c": "in", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss constant.numeric.css keyword.other.unit.in.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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ": ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$color", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "width", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$width", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "style", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "dashed", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "p", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "sexy-border", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "blue", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " mixin with varargs ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "box-shadow", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$shadows", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "...", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-moz-box-shadow", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.vendored.property-name.css", - "r": { - "dark_plus": "support.type.vendored.property-name: #9CDCFE", - "light_plus": "support.type.vendored.property-name: #FF0000", - "dark_vs": "support.type.vendored.property-name: #9CDCFE", - "light_vs": "support.type.vendored.property-name: #FF0000", - "hc_black": "support.type.vendored.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$shadows", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-webkit-box-shadow", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.vendored.property-name.css", - "r": { - "dark_plus": "support.type.vendored.property-name: #9CDCFE", - "light_plus": "support.type.vendored.property-name: #FF0000", - "dark_vs": "support.type.vendored.property-name: #9CDCFE", - "light_vs": "support.type.vendored.property-name: #FF0000", - "hc_black": "support.type.vendored.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$shadows", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "box-shadow", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$shadows", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "shadows", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "box-shadow", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "666", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "6", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "999", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " include with varargs ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "colors", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$text", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$background", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$border", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "color", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$text", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "background-color", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$background", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "border-color", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$border", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$values", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ": ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "ff0000", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "00ff00", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ", ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "0000ff", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "primary", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "colors", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$values", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "...", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " include with body ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "apply-to-ie6-only", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.name.tag.wildcard.scss", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "html", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.content.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@content", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.content.scss keyword.control.content.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "apply-to-ie6-only", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.include.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "logo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "background-image", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "url", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss keyword.operator.css", - "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" - } - }, - { - "c": "logo.gif", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss variable.parameter.url.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.if.scss keyword.control.if.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "if", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.if.scss keyword.control.if.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$attr", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.if.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.if.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "apply-to-ie6-only", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " attributes ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "[", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss punctuation.definition.attribute-selector.begin.bracket.square.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rel", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss entity.other.attribute-name.attribute.scss", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss keyword.operator.scss", - "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" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss string.quoted.double.attribute-value.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "external", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss string.quoted.double.attribute-value.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.attribute-selector.scss punctuation.definition.attribute-selector.end.bracket.square.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "::", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.pseudo-element.css: #800000", - "dark_vs": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.pseudo-element.css: #800000", - "hc_black": "entity.other.attribute-name.pseudo-element.css: #D7BA7D" - } - }, - { - "c": "after", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.pseudo-element.css", - "r": { - "dark_plus": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.pseudo-element.css: #800000", - "dark_vs": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.pseudo-element.css: #800000", - "hc_black": "entity.other.attribute-name.pseudo-element.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "content", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "s", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "page ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.page.scss keyword.control.at-rule.page.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "page", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.page.scss keyword.control.at-rule.page.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.page.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":left", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.page.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.at-rule.page.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "margin-left", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "4", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "cm", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.cm.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "margin-right", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "cm", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss constant.numeric.css keyword.other.unit.cm.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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " missing semicolons ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "tr", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.name.tag.css", - "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" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "default", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "bar", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ": ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "white", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "bar1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "extend", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "tr", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.name.tag.css", - "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" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "default", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " }", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "bar2", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " {", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " @import ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "compass", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss string.quoted.double.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " }", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " bar: ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "black", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss support.constant.color.w3c-standard-color-name.css", - "r": { - "dark_plus": "support.constant.color: #CE9178", - "light_plus": "support.constant.color: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.color: #0451A5", - "hc_black": "support.constant.color: #CE9178" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.name.tag.wildcard.scss", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " rules without ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "whitespace", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss support.constant.property-value.css", - "r": { - "dark_plus": "support.constant.property-value: #CE9178", - "light_plus": "support.constant.property-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "support.constant.property-value: #0451A5", - "hc_black": "support.constant.property-value: #CE9178" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.name.tag.wildcard.scss", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": "/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss keyword.operator.css", - "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" - } - }, - { - "c": "legend", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.name.tag.css", - "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" - } - }, - { - "c": " {foo{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":s}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "margin-top", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "margin-bottom", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css punctuation.definition.constant.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": "123", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss constant.other.color.rgb-value.hex.css", - "r": { - "dark_plus": "constant.other.color.rgb-value: #CE9178", - "light_plus": "constant.other.color.rgb-value: #0451A5", - "dark_vs": "default: #D4D4D4", - "light_vs": "constant.other.color.rgb-value: #0451A5", - "hc_black": "constant.other.color.rgb-value: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "margin-top", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "s", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " extend with interpolation variable ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "mixin", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss keyword.control.at-rule.mixin.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "error", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$a", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " false", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.mixin.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "extend", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$a", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "extend", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss keyword.control.at-rule.extend.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " #", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$a", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.extend.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.id.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": "bar", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.id.css", - "r": { - "dark_plus": "entity.other.attribute-name.id.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.id.css: #800000", - "dark_vs": "entity.other.attribute-name.id.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.id.css: #800000", - "hc_black": "entity.other.attribute-name.id.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "bar", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": "px", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "include", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss keyword.control.at-rule.include.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "error", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.begin.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss string.quoted.single.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "bar", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss string.quoted.single.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss string.quoted.single.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.at-rule.include.scss punctuation.definition.parameters.end.bracket.round.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.css", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " css3: @font face ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.fontface.scss keyword.control.at-rule.fontface.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "font-face", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.fontface.scss keyword.control.at-rule.fontface.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.fontface.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "font-family", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Delicious", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "src", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "url", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss support.function.misc.scss", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Delicious-Roman.otf", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss punctuation.section.function.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " rule names with variables ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": ".", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "orbit-", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$d", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "-prev", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.class.css", - "r": { - "dark_plus": "entity.other.attribute-name.class.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.class.css: #800000", - "dark_vs": "entity.other.attribute-name.class.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.class.css: #800000", - "hc_black": "entity.other.attribute-name.class.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$d", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "-style", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo-", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$d", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$d", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "-bar-", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$d", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo-", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.begin.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "$d", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss variable.interpolation.scss punctuation.definition.interpolation.end.bracket.curly.scss", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "-bar", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " keyframes ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss keyword.control.at-rule.keyframes.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "-webkit-keyframes", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss keyword.control.at-rule.keyframes.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " NAME-YOUR-ANIMATION ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss punctuation.section.keyframes.begin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss entity.other.attribute-name.scss", - "r": { - "dark_plus": "entity.other.attribute-name.scss: #D7BA7D", - "light_plus": "entity.other.attribute-name.scss: #800000", - "dark_vs": "entity.other.attribute-name.scss: #D7BA7D", - "light_vs": "entity.other.attribute-name.scss: #800000", - "hc_black": "entity.other.attribute-name.scss: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss entity.other.attribute-name.scss", - "r": { - "dark_plus": "entity.other.attribute-name.scss: #D7BA7D", - "light_plus": "entity.other.attribute-name.scss: #800000", - "dark_vs": "entity.other.attribute-name.scss: #D7BA7D", - "light_vs": "entity.other.attribute-name.scss: #800000", - "hc_black": "entity.other.attribute-name.scss: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss punctuation.section.keyframes.end.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss keyword.control.at-rule.keyframes.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "-moz-keyframes", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss keyword.control.at-rule.keyframes.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " NAME-YOUR-ANIMATION ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss punctuation.section.keyframes.begin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss entity.other.attribute-name.scss", - "r": { - "dark_plus": "entity.other.attribute-name.scss: #D7BA7D", - "light_plus": "entity.other.attribute-name.scss: #800000", - "dark_vs": "entity.other.attribute-name.scss: #D7BA7D", - "light_vs": "entity.other.attribute-name.scss: #800000", - "hc_black": "entity.other.attribute-name.scss: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss entity.other.attribute-name.scss", - "r": { - "dark_plus": "entity.other.attribute-name.scss: #D7BA7D", - "light_plus": "entity.other.attribute-name.scss: #800000", - "dark_vs": "entity.other.attribute-name.scss: #D7BA7D", - "light_vs": "entity.other.attribute-name.scss: #800000", - "hc_black": "entity.other.attribute-name.scss: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss punctuation.section.keyframes.end.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-o-keyframes", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-name.scss support.type.vendored.property-name.css", - "r": { - "dark_plus": "support.type.vendored.property-name: #9CDCFE", - "light_plus": "support.type.vendored.property-name: #FF0000", - "dark_vs": "support.type.vendored.property-name: #9CDCFE", - "light_vs": "support.type.vendored.property-name: #FF0000", - "hc_black": "support.type.vendored.property-name: #D4D4D4" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NAME-YOUR-ANIMATION", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.name.tag.custom.scss", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " 0% ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " 100% ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "@", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss keyword.control.at-rule.keyframes.scss punctuation.definition.keyword.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "keyframes", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss keyword.control.at-rule.keyframes.scss", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NAME-YOUR-ANIMATION", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss entity.name.function.scss", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss punctuation.section.keyframes.begin.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss entity.other.attribute-name.scss", - "r": { - "dark_plus": "entity.other.attribute-name.scss: #D7BA7D", - "light_plus": "entity.other.attribute-name.scss: #800000", - "dark_vs": "entity.other.attribute-name.scss: #D7BA7D", - "light_vs": "entity.other.attribute-name.scss: #800000", - "hc_black": "entity.other.attribute-name.scss: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "100%", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss entity.other.attribute-name.scss", - "r": { - "dark_plus": "entity.other.attribute-name.scss: #D7BA7D", - "light_plus": "entity.other.attribute-name.scss: #800000", - "dark_vs": "entity.other.attribute-name.scss: #D7BA7D", - "light_vs": "entity.other.attribute-name.scss: #800000", - "hc_black": "entity.other.attribute-name.scss: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "opacity", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-name.scss support.type.property-name.css", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name: #FF0000", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name: #FF0000", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss meta.property-value.scss 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" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.at-rule.keyframes.scss punctuation.section.keyframes.end.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " string escaping ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "[", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss punctuation.definition.attribute-selector.begin.bracket.square.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "data-icon", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss entity.other.attribute-name.attribute.scss", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss keyword.operator.scss", - "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" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss string.quoted.single.attribute-value.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "test-1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss string.quoted.single.attribute-value.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.attribute-selector.scss punctuation.definition.attribute-selector.end.bracket.square.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.pseudo-element.css punctuation.definition.entity.css", - "r": { - "dark_plus": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.pseudo-element.css: #800000", - "dark_vs": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.pseudo-element.css: #800000", - "hc_black": "entity.other.attribute-name.pseudo-element.css: #D7BA7D" - } - }, - { - "c": "before", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss entity.other.attribute-name.pseudo-element.css", - "r": { - "dark_plus": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_plus": "entity.other.attribute-name.pseudo-element.css: #800000", - "dark_vs": "entity.other.attribute-name.pseudo-element.css: #D7BA7D", - "light_vs": "entity.other.attribute-name.pseudo-element.css: #800000", - "hc_black": "entity.other.attribute-name.pseudo-element.css: #D7BA7D" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.begin.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "content", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss entity.name.tag.css", - "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" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\\\", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss constant.character.escape.scss", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-list.scss punctuation.section.property-list.end.bracket.curly.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " a comment ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "$var1", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss constant.character.escape.scss", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "'", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.single.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$var2", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss variable.scss", - "r": { - "dark_plus": "variable.scss: #9CDCFE", - "light_plus": "variable.scss: #FF0000", - "dark_vs": "variable.scss: #9CDCFE", - "light_vs": "variable.scss: #FF0000", - "hc_black": "variable.scss: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.separator.key-value.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss punctuation.definition.string.begin.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\\\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss constant.character.escape.scss", - "r": { - "dark_plus": "constant.character.escape: #D7BA7D", - "light_plus": "constant.character.escape: #EE0000", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "constant.character: #569CD6" - } - }, - { - "c": "\"", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss meta.property-value.scss string.quoted.double.scss punctuation.definition.string.end.scss", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss punctuation.terminator.rule.scss", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/*", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " another comment ", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.css.scss meta.at-rule.each.scss meta.at-rule.while.scss meta.property-list.scss comment.block.scss punctuation.definition.comment.scss", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - } -] \ No newline at end of file diff --git a/extensions/shaderlab/.vscodeignore b/extensions/shaderlab/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/shaderlab/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/shaderlab/cgmanifest.json b/extensions/shaderlab/cgmanifest.json deleted file mode 100644 index 2dd540dc872..00000000000 --- a/extensions/shaderlab/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "shaders-tmLanguage", - "repositoryUrl": "https://github.com/tgjones/shaders-tmLanguage", - "commitHash": "c72c8b39380ba5a86c58ceed053b5d965ebf38b3" - } - }, - "license": "MIT", - "version": "0.1.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/shaderlab/language-configuration.json b/extensions/shaderlab/language-configuration.json deleted file mode 100644 index 6af82376726..00000000000 --- a/extensions/shaderlab/language-configuration.json +++ /dev/null @@ -1,23 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""] - ] -} diff --git a/extensions/shaderlab/package.json b/extensions/shaderlab/package.json deleted file mode 100644 index d5f1f462f2c..00000000000 --- a/extensions/shaderlab/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "shaderlab", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js tgjones/shaders-tmLanguage grammars/shaderlab.json ./syntaxes/shaderlab.tmLanguage.json" - }, - "contributes": { - "languages": [ - { - "id": "shaderlab", - "extensions": [ - ".shader" - ], - "aliases": [ - "ShaderLab", - "shaderlab" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "shaderlab", - "path": "./syntaxes/shaderlab.tmLanguage.json", - "scopeName": "source.shaderlab" - } - ] - } -} \ No newline at end of file diff --git a/extensions/shaderlab/package.nls.json b/extensions/shaderlab/package.nls.json deleted file mode 100644 index 1ea4ae8174e..00000000000 --- a/extensions/shaderlab/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Shaderlab Language Basics", - "description": "Provides syntax highlighting and bracket matching in Shaderlab files." -} \ No newline at end of file diff --git a/extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json b/extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json deleted file mode 100644 index 6b7ad9d7fe2..00000000000 --- a/extensions/shaderlab/syntaxes/shaderlab.tmLanguage.json +++ /dev/null @@ -1,204 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/tgjones/shaders-tmLanguage/blob/master/grammars/shaderlab.json", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/tgjones/shaders-tmLanguage/commit/c72c8b39380ba5a86c58ceed053b5d965ebf38b3", - "name": "ShaderLab", - "scopeName": "source.shaderlab", - "patterns": [ - { - "name": "comment.line.double-slash.shaderlab", - "begin": "//", - "end": "$" - }, - { - "name": "support.type.basic.shaderlab", - "match": "\\b(?i:Range|Float|Int|Color|Vector|2D|3D|Cube|Any)\\b" - }, - { - "include": "#numbers" - }, - { - "name": "storage.type.structure.shaderlab", - "match": "\\b(?i:Shader|Properties|SubShader|Pass|Category)\\b" - }, - { - "name": "support.type.propertyname.shaderlab", - "match": "\\b(?i:Name|Tags|Fallback|CustomEditor|Cull|ZWrite|ZTest|Offset|Blend|BlendOp|ColorMask|AlphaToMask|LOD|Lighting|Stencil|Ref|ReadMask|WriteMask|Comp|CompBack|CompFront|Fail|ZFail|UsePass|GrabPass|Dependency|Material|Diffuse|Ambient|Shininess|Specular|Emission|Fog|Mode|Density|SeparateSpecular|SetTexture|Combine|ConstantColor|Matrix|AlphaTest|ColorMaterial|BindChannels|Bind)\\b" - }, - { - "name": "support.constant.property-value.shaderlab", - "match": "\\b(?i:Back|Front|On|Off|[RGBA]{1,3}|AmbientAndDiffuse|Emission)\\b" - }, - { - "name": "support.constant.property-value.comparisonfunction.shaderlab", - "match": "\\b(?i:Less|Greater|LEqual|GEqual|Equal|NotEqual|Always|Never)\\b" - }, - { - "name": "support.constant.property-value.stenciloperation.shaderlab", - "match": "\\b(?i:Keep|Zero|Replace|IncrSat|DecrSat|Invert|IncrWrap|DecrWrap)\\b" - }, - { - "name": "support.constant.property-value.texturecombiners.shaderlab", - "match": "\\b(?i:Previous|Primary|Texture|Constant|Lerp|Double|Quad|Alpha)\\b" - }, - { - "name": "support.constant.property-value.fog.shaderlab", - "match": "\\b(?i:Global|Linear|Exp2|Exp)\\b" - }, - { - "name": "support.constant.property-value.bindchannels.shaderlab", - "match": "\\b(?i:Vertex|Normal|Tangent|TexCoord0|TexCoord1)\\b" - }, - { - "name": "support.constant.property-value.blendoperations.shaderlab", - "match": "\\b(?i:Add|Sub|RevSub|Min|Max|LogicalClear|LogicalSet|LogicalCopyInverted|LogicalCopy|LogicalNoop|LogicalInvert|LogicalAnd|LogicalNand|LogicalOr|LogicalNor|LogicalXor|LogicalEquiv|LogicalAndReverse|LogicalAndInverted|LogicalOrReverse|LogicalOrInverted)\\b" - }, - { - "name": "support.constant.property-value.blendfactors.shaderlab", - "match": "\\b(?i:One|Zero|SrcColor|SrcAlpha|DstColor|DstAlpha|OneMinusSrcColor|OneMinusSrcAlpha|OneMinusDstColor|OneMinusDstAlpha)\\b" - }, - { - "name": "support.variable.reference.shaderlab", - "match": "\\[([a-zA-Z_][a-zA-Z0-9_]*)\\](?!\\s*[a-zA-Z_][a-zA-Z0-9_]*\\s*\\(\")" - }, - { - "name": "meta.attribute.shaderlab", - "begin": "(\\[)", - "end": "(\\])", - "patterns": [ - { - "name": "support.type.attributename.shaderlab", - "match": "\\G([a-zA-Z]+)\\b" - }, - { - "include": "#numbers" - } - ] - }, - { - "name": "support.variable.declaration.shaderlab", - "match": "\\b([a-zA-Z_][a-zA-Z0-9_]*)\\s*\\(" - }, - { - "name": "meta.cgblock", - "begin": "\\b(CGPROGRAM|CGINCLUDE)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other" - } - }, - "end": "\\b(ENDCG)\\b", - "endCaptures": { - "1": { - "name": "keyword.other" - } - }, - "patterns": [ - { - "include": "#hlsl-embedded" - } - ] - }, - { - "name": "meta.hlslblock", - "begin": "\\b(HLSLPROGRAM|HLSLINCLUDE)\\b", - "beginCaptures": { - "1": { - "name": "keyword.other" - } - }, - "end": "\\b(ENDHLSL)\\b", - "endCaptures": { - "1": { - "name": "keyword.other" - } - }, - "patterns": [ - { - "include": "#hlsl-embedded" - } - ] - }, - { - "name": "string.quoted.double.shaderlab", - "begin": "\"", - "end": "\"" - } - ], - "repository": { - "numbers": { - "patterns": [ - { - "name": "constant.numeric.shaderlab", - "match": "\\b([0-9]+\\.?[0-9]*)\\b" - } - ] - }, - "hlsl-embedded": { - "patterns": [ - { - "include": "source.hlsl" - }, - { - "name": "storage.type.basic.shaderlab", - "match": "\\b(fixed([1-4](x[1-4])?)?)\\b" - }, - { - "name": "support.variable.transformations.shaderlab", - "match": "\\b(UNITY_MATRIX_MVP|UNITY_MATRIX_MV|UNITY_MATRIX_M|UNITY_MATRIX_V|UNITY_MATRIX_P|UNITY_MATRIX_VP|UNITY_MATRIX_T_MV|UNITY_MATRIX_I_V|UNITY_MATRIX_IT_MV|_Object2World|_World2Object|unity_ObjectToWorld|unity_WorldToObject)\\b" - }, - { - "name": "support.variable.camera.shaderlab", - "match": "\\b(_WorldSpaceCameraPos|_ProjectionParams|_ScreenParams|_ZBufferParams|unity_OrthoParams|unity_CameraProjection|unity_CameraInvProjection|unity_CameraWorldClipPlanes)\\b" - }, - { - "name": "support.variable.time.shaderlab", - "match": "\\b(_Time|_SinTime|_CosTime|unity_DeltaTime)\\b" - }, - { - "name": "support.variable.lighting.shaderlab", - "match": "\\b(_LightColor0|_WorldSpaceLightPos0|_LightMatrix0|unity_4LightPosX0|unity_4LightPosY0|unity_4LightPosZ0|unity_4LightAtten0|unity_LightColor|_LightColor|unity_LightPosition|unity_LightAtten|unity_SpotDirection)\\b" - }, - { - "name": "support.variable.fog.shaderlab", - "match": "\\b(unity_AmbientSky|unity_AmbientEquator|unity_AmbientGround|UNITY_LIGHTMODEL_AMBIENT|unity_FogColor|unity_FogParams)\\b" - }, - { - "name": "support.variable.various.shaderlab", - "match": "\\b(unity_LODFade)\\b" - }, - { - "name": "support.variable.preprocessor.targetplatform.shaderlab", - "match": "\\b(SHADER_API_D3D9|SHADER_API_D3D11|SHADER_API_GLCORE|SHADER_API_OPENGL|SHADER_API_GLES|SHADER_API_GLES3|SHADER_API_METAL|SHADER_API_D3D11_9X|SHADER_API_PSSL|SHADER_API_XBOXONE|SHADER_API_PSP2|SHADER_API_WIIU|SHADER_API_MOBILE|SHADER_API_GLSL)\\b" - }, - { - "name": "support.variable.preprocessor.targetmodel.shaderlab", - "match": "\\b(SHADER_TARGET)\\b" - }, - { - "name": "support.variable.preprocessor.unityversion.shaderlab", - "match": "\\b(UNITY_VERSION)\\b" - }, - { - "name": "support.variable.preprocessor.platformdifference.shaderlab", - "match": "\\b(UNITY_BRANCH|UNITY_FLATTEN|UNITY_NO_SCREENSPACE_SHADOWS|UNITY_NO_LINEAR_COLORSPACE|UNITY_NO_RGBM|UNITY_NO_DXT5nm|UNITY_FRAMEBUFFER_FETCH_AVAILABLE|UNITY_USE_RGBA_FOR_POINT_SHADOWS|UNITY_ATTEN_CHANNEL|UNITY_HALF_TEXEL_OFFSET|UNITY_UV_STARTS_AT_TOP|UNITY_MIGHT_NOT_HAVE_DEPTH_Texture|UNITY_NEAR_CLIP_VALUE|UNITY_VPOS_TYPE|UNITY_CAN_COMPILE_TESSELLATION|UNITY_COMPILER_HLSL|UNITY_COMPILER_HLSL2GLSL|UNITY_COMPILER_CG|UNITY_REVERSED_Z)\\b" - }, - { - "name": "support.variable.preprocessor.texture2D.shaderlab", - "match": "\\b(UNITY_PASS_FORWARDBASE|UNITY_PASS_FORWARDADD|UNITY_PASS_DEFERRED|UNITY_PASS_SHADOWCASTER|UNITY_PASS_PREPASSBASE|UNITY_PASS_PREPASSFINAL)\\b" - }, - { - "name": "support.class.structures.shaderlab", - "match": "\\b(appdata_base|appdata_tan|appdata_full|appdata_img)\\b" - }, - { - "name": "support.class.surface.shaderlab", - "match": "\\b(SurfaceOutputStandardSpecular|SurfaceOutputStandard|SurfaceOutput|Input)\\b" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/shaderlab/test/colorize-fixtures/test.shader b/extensions/shaderlab/test/colorize-fixtures/test.shader deleted file mode 100644 index 65c54531f4d..00000000000 --- a/extensions/shaderlab/test/colorize-fixtures/test.shader +++ /dev/null @@ -1,15 +0,0 @@ -Shader "Example/Diffuse Simple" { - SubShader { - Tags { "RenderType" = "Opaque" } - CGPROGRAM - #pragma surface surf Lambert - struct Input { - float4 color : COLOR; - }; - void surf (Input IN, inout SurfaceOutput o) { - o.Albedo = 1; - } - ENDCG - } - Fallback "Diffuse" - } \ No newline at end of file diff --git a/extensions/shaderlab/test/colorize-results/test_shader.json b/extensions/shaderlab/test/colorize-results/test_shader.json deleted file mode 100644 index fac0a925a41..00000000000 --- a/extensions/shaderlab/test/colorize-results/test_shader.json +++ /dev/null @@ -1,574 +0,0 @@ -[ - { - "c": "Shader", - "t": "source.shaderlab storage.type.structure.shaderlab", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"Example/Diffuse Simple\"", - "t": "source.shaderlab string.quoted.double.shaderlab", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " {", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "SubShader", - "t": "source.shaderlab storage.type.structure.shaderlab", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " {", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Tags", - "t": "source.shaderlab support.type.propertyname.shaderlab", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " { ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"RenderType\"", - "t": "source.shaderlab string.quoted.double.shaderlab", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " = ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"Opaque\"", - "t": "source.shaderlab string.quoted.double.shaderlab", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " }", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "CGPROGRAM", - "t": "source.shaderlab meta.cgblock keyword.other", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " #pragma", - "t": "source.shaderlab meta.cgblock keyword.preprocessor.hlsl", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " surface surf Lambert", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "struct", - "t": "source.shaderlab meta.cgblock storage.type.structured.hlsl", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Input", - "t": "source.shaderlab meta.cgblock support.class.surface.shaderlab", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " {", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "float4", - "t": "source.shaderlab meta.cgblock storage.type.basic.hlsl", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " color : ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "COLOR", - "t": "source.shaderlab meta.cgblock support.variable.semantic.hlsl", - "r": { - "dark_plus": "support.variable: #9CDCFE", - "light_plus": "support.variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " };", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.shaderlab meta.cgblock storage.type.basic.hlsl", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "surf", - "t": "source.shaderlab meta.cgblock support.function.hlsl", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " (", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Input", - "t": "source.shaderlab meta.cgblock support.class.surface.shaderlab", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " IN, ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "inout", - "t": "source.shaderlab meta.cgblock storage.modifier.hlsl", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "SurfaceOutput", - "t": "source.shaderlab meta.cgblock support.class.surface.shaderlab", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": " o) {", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " o.Albedo = ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.shaderlab meta.cgblock constant.numeric.decimal.hlsl", - "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" - } - }, - { - "c": ";", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " }", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab meta.cgblock", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ENDCG", - "t": "source.shaderlab meta.cgblock keyword.other", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " }", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Fallback", - "t": "source.shaderlab support.type.propertyname.shaderlab", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"Diffuse\"", - "t": "source.shaderlab string.quoted.double.shaderlab", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " }", - "t": "source.shaderlab", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/shellscript/.vscodeignore b/extensions/shellscript/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/shellscript/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/shellscript/cgmanifest.json b/extensions/shellscript/cgmanifest.json deleted file mode 100644 index fcf7f676fa7..00000000000 --- a/extensions/shellscript/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "atom/language-shellscript", - "repositoryUrl": "https://github.com/atom/language-shellscript", - "commitHash": "4c3711edbe8eac6f501976893976b1ac6a043d50" - } - }, - "license": "MIT", - "description": "The file syntaxes/shell-unix-bash.tmLanguage.json was derived from the Atom package https://github.com/atom/language-shellscript which was originally converted from the TextMate bundle https://github.com/textmate/shellscript.tmbundle.", - "version": "0.26.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/shellscript/language-configuration.json b/extensions/shellscript/language-configuration.json deleted file mode 100644 index 8421a3817a2..00000000000 --- a/extensions/shellscript/language-configuration.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "comments": { - "lineComment": "#" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] }, - { "open": "`", "close": "`", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["`", "`"] - ], - "folding": { - "markers": { - "start": "^\\s*#\\s*#?region\\b.*", - "end": "^\\s*#\\s*#?endregion\\b.*" - } - } -} diff --git a/extensions/shellscript/package.json b/extensions/shellscript/package.json deleted file mode 100644 index 50c3ffdb799..00000000000 --- a/extensions/shellscript/package.json +++ /dev/null @@ -1,70 +0,0 @@ -{ - "name": "shellscript", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js atom/language-shellscript grammars/shell-unix-bash.cson ./syntaxes/shell-unix-bash.tmLanguage.json" - }, - "contributes": { - "languages": [{ - "id": "shellscript", - "aliases": ["Shell Script", "shellscript", "bash", "sh", "zsh", "ksh", "csh"], - "extensions": [ - ".sh", - ".bash", - ".bashrc", - ".bash_aliases", - ".bash_profile", - ".bash_login", - ".ebuild", - ".install", - ".profile", - ".bash_logout", - ".zsh", - ".zshrc", - ".zprofile", - ".zlogin", - ".zlogout", - ".zshenv", - ".zsh-theme", - ".ksh", - ".csh", - ".cshrc", - ".tcshrc", - ".yashrc", - ".yash_profile" - ], - "filenames": [ - "APKBUILD", - "PKGBUILD", - ".envrc", - ".hushlogin", - "zshrc", - "zshenv", - "zlogin", - "zprofile", - "zlogout", - "bashrc_Apple_Terminal", - "zshrc_Apple_Terminal" - ], - "firstLine": "^#!.*\\b(bash|zsh|sh|ksh|dtksh|pdksh|mksh|ash|dash|yash|sh|csh|jcsh|tcsh|itcsh).*|^#\\s*-\\*-[^*]*mode:\\s*shell-script[^*]*-\\*-", - "configuration": "./language-configuration.json", - "mimetypes": ["text/x-shellscript"] - }], - "grammars": [{ - "language": "shellscript", - "scopeName": "source.shell", - "path": "./syntaxes/shell-unix-bash.tmLanguage.json" - }], - "configurationDefaults": { - "[shellscript]": { - "files.eol": "\n" - } - } - - } -} diff --git a/extensions/shellscript/package.nls.json b/extensions/shellscript/package.nls.json deleted file mode 100644 index 9360510f798..00000000000 --- a/extensions/shellscript/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Shell Script Language Basics", - "description": "Provides syntax highlighting and bracket matching in Shell Script files." -} \ No newline at end of file diff --git a/extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json b/extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json deleted file mode 100644 index 0089e5aa5c4..00000000000 --- a/extensions/shellscript/syntaxes/shell-unix-bash.tmLanguage.json +++ /dev/null @@ -1,1283 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-shellscript/blob/master/grammars/shell-unix-bash.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-shellscript/commit/4c3711edbe8eac6f501976893976b1ac6a043d50", - "name": "Shell Script", - "scopeName": "source.shell", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#pipeline" - }, - { - "include": "#list" - }, - { - "include": "#compound-command" - }, - { - "include": "#loop" - }, - { - "include": "#string" - }, - { - "include": "#function-definition" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - }, - { - "include": "#heredoc" - }, - { - "include": "#herestring" - }, - { - "include": "#redirection" - }, - { - "include": "#pathname" - }, - { - "include": "#keyword" - }, - { - "include": "#support" - } - ], - "repository": { - "case-clause": { - "patterns": [ - { - "begin": "(?=\\S)", - "end": ";;", - "endCaptures": { - "0": { - "name": "punctuation.terminator.case-clause.shell" - } - }, - "name": "meta.scope.case-clause.shell", - "patterns": [ - { - "begin": "\\(|(?=\\S)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.case-pattern.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.case-pattern.shell" - } - }, - "name": "meta.scope.case-pattern.shell", - "patterns": [ - { - "match": "\\|", - "name": "punctuation.separator.pipe-sign.shell" - }, - { - "include": "#string" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - }, - { - "include": "#pathname" - } - ] - }, - { - "begin": "(?<=\\))", - "end": "(?=;;)", - "name": "meta.scope.case-clause-body.shell", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - } - ] - }, - "comment": { - "begin": "(^\\s+)?(?<=^|\\W)(?|&&|\\|\\|", - "name": "keyword.operator.logical.shell" - }, - { - "match": "(?[>=]?|==|!=|^|\\|{1,2}|&{1,2}|\\?|\\:|,|=|[*/%+\\-&^|]=|<<=|>>=", - "name": "keyword.operator.arithmetic.shell" - }, - { - "match": "0[xX][0-9A-Fa-f]+", - "name": "constant.numeric.hex.shell" - }, - { - "match": "0\\d+", - "name": "constant.numeric.octal.shell" - }, - { - "match": "\\d{1,2}#[0-9a-zA-Z@_]+", - "name": "constant.numeric.other.shell" - }, - { - "match": "\\d+", - "name": "constant.numeric.integer.shell" - } - ] - }, - "pathname": { - "patterns": [ - { - "match": "(?<=\\s|:|=|^)~", - "name": "keyword.operator.tilde.shell" - }, - { - "match": "\\*|\\?", - "name": "keyword.operator.glob.shell" - }, - { - "begin": "([?*+@!])(\\()", - "beginCaptures": { - "1": { - "name": "keyword.operator.extglob.shell" - }, - "2": { - "name": "punctuation.definition.extglob.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.extglob.shell" - } - }, - "name": "meta.structure.extglob.shell", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "pipeline": { - "patterns": [ - { - "match": "(?<=^|;|&|\\s)(time)(?=\\s|;|&|$)", - "name": "keyword.other.shell" - }, - { - "match": "[|!]", - "name": "keyword.operator.pipe.shell" - } - ] - }, - "redirection": { - "patterns": [ - { - "begin": "[><]\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.interpolated.process-substitution.shell", - "patterns": [ - { - "include": "$self" - } - ] - }, - { - "match": "(?])(&>|\\d*>&\\d*|\\d*(>>|>|<)|\\d*<&|\\d*<>)(?![<>])", - "name": "keyword.operator.redirect.shell" - } - ] - }, - "string": { - "patterns": [ - { - "match": "\\\\.", - "name": "constant.character.escape.shell" - }, - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.quoted.single.shell" - }, - { - "begin": "\\$?\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.quoted.double.shell", - "patterns": [ - { - "match": "\\\\[\\$`\"\\\\\\n]", - "name": "constant.character.escape.shell" - }, - { - "include": "#variable" - }, - { - "include": "#interpolation" - } - ] - }, - { - "begin": "\\$'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.shell" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.shell" - } - }, - "name": "string.quoted.single.dollar.shell", - "patterns": [ - { - "match": "\\\\(a|b|e|f|n|r|t|v|\\\\|')", - "name": "constant.character.escape.ansi-c.shell" - }, - { - "match": "\\\\[0-9]{3}", - "name": "constant.character.escape.octal.shell" - }, - { - "match": "\\\\x[0-9a-fA-F]{2}", - "name": "constant.character.escape.hex.shell" - }, - { - "match": "\\\\c.", - "name": "constant.character.escape.control-char.shell" - } - ] - } - ] - }, - "support": { - "patterns": [ - { - "match": "(?<=^|;|&|\\s)(?::|\\.)(?=\\s|;|&|$)", - "name": "support.function.builtin.shell" - }, - { - "match": "(?<=^|;|&|\\s)(?:alias|bg|bind|break|builtin|caller|cd|command|compgen|complete|dirs|disown|echo|enable|eval|exec|exit|false|fc|fg|getopts|hash|help|history|jobs|kill|let|logout|popd|printf|pushd|pwd|read|readonly|set|shift|shopt|source|suspend|test|times|trap|true|type|ulimit|umask|unalias|unset|wait)(?=\\s|;|&|$)", - "name": "support.function.builtin.shell" - } - ] - }, - "variable": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.variable.shell" - } - }, - "match": "(\\$)[a-zA-Z_][a-zA-Z0-9_]*", - "name": "variable.other.normal.shell" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.shell" - } - }, - "match": "(\\$)[-*@#?$!0_]", - "name": "variable.other.special.shell" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.shell" - } - }, - "match": "(\\$)[1-9]", - "name": "variable.other.positional.shell" - }, - { - "begin": "\\${", - "beginCaptures": { - "0": { - "name": "punctuation.definition.variable.shell" - } - }, - "end": "}", - "endCaptures": { - "0": { - "name": "punctuation.definition.variable.shell" - } - }, - "name": "variable.other.bracket.shell", - "patterns": [ - { - "match": "!|:[-=?]?|\\*|@|#{1,2}|%{1,2}|/", - "name": "keyword.operator.expansion.shell" - }, - { - "captures": { - "1": { - "name": "punctuation.section.array.shell" - }, - "3": { - "name": "punctuation.section.array.shell" - } - }, - "match": "(\\[)([^\\]]+)(\\])" - }, - { - "include": "#variable" - }, - { - "include": "#string" - } - ] - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/shellscript/test/colorize-fixtures/test.sh b/extensions/shellscript/test/colorize-fixtures/test.sh deleted file mode 100644 index 4c5bf8f7eab..00000000000 --- a/extensions/shellscript/test/colorize-fixtures/test.sh +++ /dev/null @@ -1,30 +0,0 @@ -#!/usr/bin/env bash - -if [[ "$OSTYPE" == "darwin"* ]]; then - realpath() { [[ $1 = /* ]] && echo "$1" || echo "$PWD/${1#./}"; } - ROOT=$(dirname $(dirname $(realpath "$0"))) -else - ROOT=$(dirname $(dirname $(readlink -f $0))) -fi - -DEVELOPER=$(xcode-select -print-path) -LIPO=$(xcrun -sdk iphoneos -find lipo) - -function code() { - cd $ROOT - - # Node modules - test -d node_modules || ./scripts/npm.sh install - - # Configuration - export NODE_ENV=development - - # Launch Code - if [[ "$OSTYPE" == "darwin"* ]]; then - exec ./.build/electron/Electron.app/Contents/MacOS/Electron . "$@" - else - exec ./.build/electron/electron . "$@" - fi -} - -code "$@" diff --git a/extensions/shellscript/test/colorize-results/test_sh.json b/extensions/shellscript/test/colorize-results/test_sh.json deleted file mode 100644 index 6760e596443..00000000000 --- a/extensions/shellscript/test/colorize-results/test_sh.json +++ /dev/null @@ -1,1960 +0,0 @@ -[ - { - "c": "#!", - "t": "source.shell comment.line.number-sign.shebang.shell punctuation.definition.comment.shebang.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "/usr/bin/env bash", - "t": "source.shell comment.line.number-sign.shebang.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "if", - "t": "source.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[[", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell punctuation.definition.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell variable.other.normal.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "OSTYPE", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell variable.other.normal.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell keyword.operator.logical.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "darwin", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "*", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell keyword.operator.glob.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]]", - "t": "source.shell meta.scope.if-block.shell meta.scope.logical-expression.shell punctuation.definition.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.shell meta.scope.if-block.shell keyword.operator.list.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "then", - "t": "source.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "\t", - "t": "source.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "realpath", - "t": "source.shell meta.scope.if-block.shell meta.function.shell entity.name.function.shell", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.shell meta.scope.if-block.shell meta.function.shell punctuation.definition.arguments.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell punctuation.definition.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[[", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell punctuation.definition.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell variable.other.positional.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "1", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell variable.other.positional.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell keyword.operator.logical.shell", - "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" - } - }, - { - "c": " /", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell keyword.operator.glob.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]]", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell meta.scope.logical-expression.shell punctuation.definition.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&&", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell keyword.operator.list.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "echo", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.positional.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "1", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.positional.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell keyword.operator.pipe.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "echo", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.normal.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "PWD", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.normal.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "/", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.bracket.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "1", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.bracket.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "#", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.bracket.shell keyword.operator.expansion.shell", - "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" - } - }, - { - "c": ".", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.bracket.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "/", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.bracket.shell keyword.operator.expansion.shell", - "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" - } - }, - { - "c": "}", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell variable.other.bracket.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell keyword.operator.list.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.shell meta.scope.if-block.shell meta.function.shell meta.scope.group.shell punctuation.definition.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\tROOT=", - "t": "source.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "dirname ", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "dirname ", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "realpath ", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.quoted.double.shell variable.other.special.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "0", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.quoted.double.shell variable.other.special.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "else", - "t": "source.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "\tROOT=", - "t": "source.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "dirname ", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "dirname ", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$(", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "readlink -f ", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell variable.other.special.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "0", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell variable.other.special.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.shell meta.scope.if-block.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "fi", - "t": "source.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "DEVELOPER=", - "t": "source.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "xcode-select -print-path", - "t": "source.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "LIPO=", - "t": "source.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$(", - "t": "source.shell string.interpolated.dollar.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "xcrun -sdk iphoneos -find lipo", - "t": "source.shell string.interpolated.dollar.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.shell string.interpolated.dollar.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "function", - "t": "source.shell meta.function.shell storage.type.function.shell", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "code()", - "t": "source.shell meta.function.shell entity.name.function.shell", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.shell meta.function.shell meta.scope.group.shell punctuation.definition.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cd", - "t": "source.shell meta.function.shell meta.scope.group.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "$", - "t": "source.shell meta.function.shell meta.scope.group.shell variable.other.normal.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "ROOT", - "t": "source.shell meta.function.shell meta.scope.group.shell variable.other.normal.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell punctuation.whitespace.comment.leading.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.shell meta.function.shell meta.scope.group.shell comment.line.number-sign.shell punctuation.definition.comment.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Node modules", - "t": "source.shell meta.function.shell meta.scope.group.shell comment.line.number-sign.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "test", - "t": "source.shell meta.function.shell meta.scope.group.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " -d node_modules ", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.shell meta.function.shell meta.scope.group.shell keyword.operator.pipe.shell", - "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" - } - }, - { - "c": " ./scripts/npm.sh install", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell punctuation.whitespace.comment.leading.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.shell meta.function.shell meta.scope.group.shell comment.line.number-sign.shell punctuation.definition.comment.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Configuration", - "t": "source.shell meta.function.shell meta.scope.group.shell comment.line.number-sign.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "export", - "t": "source.shell meta.function.shell meta.scope.group.shell storage.modifier.shell", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " NODE_ENV=development", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell punctuation.whitespace.comment.leading.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.shell meta.function.shell meta.scope.group.shell comment.line.number-sign.shell punctuation.definition.comment.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Launch Code", - "t": "source.shell meta.function.shell meta.scope.group.shell comment.line.number-sign.shell", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[[", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell punctuation.definition.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell variable.other.normal.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "OSTYPE", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell variable.other.normal.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell keyword.operator.logical.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "darwin", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "*", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell keyword.operator.glob.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "]]", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell meta.scope.logical-expression.shell punctuation.definition.logical-expression.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell keyword.operator.list.shell", - "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" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "then", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "\t\t", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "exec", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ./.build/electron/Electron.app/Contents/MacOS/Electron ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell variable.other.special.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "@", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell variable.other.special.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "\t\t", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "exec", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ./.build/electron/electron ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell support.function.builtin.shell", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell variable.other.special.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "@", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell variable.other.special.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\t", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fi", - "t": "source.shell meta.function.shell meta.scope.group.shell meta.scope.if-block.shell keyword.control.shell", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "}", - "t": "source.shell meta.function.shell meta.scope.group.shell punctuation.definition.group.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "code ", - "t": "source.shell", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.shell string.quoted.double.shell punctuation.definition.string.begin.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "$", - "t": "source.shell string.quoted.double.shell variable.other.special.shell punctuation.definition.variable.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "@", - "t": "source.shell string.quoted.double.shell variable.other.special.shell", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\"", - "t": "source.shell string.quoted.double.shell punctuation.definition.string.end.shell", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - } -] \ No newline at end of file diff --git a/extensions/sql/.vscodeignore b/extensions/sql/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/sql/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/sql/build/update-grammar.js b/extensions/sql/build/update-grammar.js deleted file mode 100644 index 7f95e256b94..00000000000 --- a/extensions/sql/build/update-grammar.js +++ /dev/null @@ -1,10 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * 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('../../../build/npm/update-grammar'); -updateGrammar.update('microsoft/vscode-mssql', 'syntaxes/SQL.plist', './syntaxes/sql.tmLanguage.json', undefined, 'main'); - - diff --git a/extensions/sql/cgmanifest.json b/extensions/sql/cgmanifest.json deleted file mode 100644 index 3f0ac384a4e..00000000000 --- a/extensions/sql/cgmanifest.json +++ /dev/null @@ -1,17 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "microsoft/vscode-mssql", - "repositoryUrl": "https://github.com/microsoft/vscode-mssql", - "commitHash": "61ae0eb21ac53883a23e09913a5ae77a59126ff9" - } - }, - "license": "MIT", - "version": "1.9.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/sql/language-configuration.json b/extensions/sql/language-configuration.json deleted file mode 100644 index cf96472ffd8..00000000000 --- a/extensions/sql/language-configuration.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "comments": { - "lineComment": "--", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "N'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"], - ["`", "`"] - ] - - // enhancedBrackets:[ - // { openTrigger: 'n', open: /begin$/i, closeComplete: 'end', matchCase: true }, - // { openTrigger: 'e', open: /case$/i, closeComplete: 'end', matchCase: true }, - // { openTrigger: 'n', open: /when$/i, closeComplete: 'then', matchCase: true } - // ], - // noindentBrackets: '()', -} \ No newline at end of file diff --git a/extensions/sql/package.json b/extensions/sql/package.json deleted file mode 100644 index 437d114c4e6..00000000000 --- a/extensions/sql/package.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "name": "sql", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ./build/update-grammar.js" - }, - "contributes": { - "languages": [ - { - "id": "sql", - "extensions": [ - ".sql", - ".dsql" - ], - "aliases": [ - "SQL" - ], - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "sql", - "scopeName": "source.sql", - "path": "./syntaxes/sql.tmLanguage.json" - } - ] - } -} diff --git a/extensions/sql/package.nls.json b/extensions/sql/package.nls.json deleted file mode 100644 index 328fcb3e153..00000000000 --- a/extensions/sql/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "SQL Language Basics", - "description": "Provides syntax highlighting and bracket matching in SQL files." -} \ No newline at end of file diff --git a/extensions/sql/syntaxes/sql.tmLanguage.json b/extensions/sql/syntaxes/sql.tmLanguage.json deleted file mode 100644 index 76b4c39b556..00000000000 --- a/extensions/sql/syntaxes/sql.tmLanguage.json +++ /dev/null @@ -1,519 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/vscode-mssql/blob/master/syntaxes/SQL.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/vscode-mssql/commit/61ae0eb21ac53883a23e09913a5ae77a59126ff9", - "name": "SQL", - "scopeName": "source.sql", - "patterns": [ - { - "match": "((?]?=|<>|<|>", - "name": "keyword.operator.comparison.sql" - }, - { - "match": "-|\\+|/", - "name": "keyword.operator.math.sql" - }, - { - "match": "\\|\\|", - "name": "keyword.operator.concatenator.sql" - }, - { - "match": "(?i)\\b(avg|checksum_agg|count|count_big|grouping|grouping_id|max|min|sum|stdev|stdevp|var|varp)\\b", - "name": "support.function.aggregate.sql" - }, - { - "match": "(?i)\\b(cast|convert|parse|try_cast|try_convert|try_parse)\\b", - "name": "support.function.conversion.sql" - }, - { - "match": "(?i)\\b(cursor_status)\\b", - "name": "support.function.cursor.sql" - }, - { - "match": "(?i)\\b(sysdatetime|sysdatetimeoffset|sysutcdatetime|current_time(stamp)?|getdate|getutcdate|datename|datepart|day|month|year|datefromparts|datetime2fromparts|datetimefromparts|datetimeoffsetfromparts|smalldatetimefromparts|timefromparts|datediff|dateadd|eomonth|switchoffset|todatetimeoffset|isdate)\\b", - "name": "support.function.datetime.sql" - }, - { - "match": "(?i)\\b(coalesce|nullif)\\b", - "name": "support.function.expression.sql" - }, - { - "match": "(? ${3:Type} {", - "\t$0", - "}" - ], - "description": "function declaration" - }, - "struct": { - "prefix": "struct", - "body": [ - "struct ${1:Name} {", - "", - "\t$0", - "}" - ], - "description": "struct declaration" - }, - "enum": { - "prefix": "enum", - "body": [ - "enum ${1:Name} {", - "", - "\tcase $0", - "}" - ], - "description": "enum declaration" - }, - "class": { - "prefix": "class", - "body": [ - "class ${1:Name} {", - "", - "\t$0", - "}" - ], - "description": "class declaration" - }, - "protocol": { - "prefix": "protocol", - "body": [ - "protocol ${1:Name} {", - "", - "\t$0", - "}" - ], - "description": "protocol declaration" - }, - "extension": { - "prefix": "extension", - "body": [ - "extension ${1:Type} {", - "", - "\t$0", - "}" - ], - "description": "extension declaration" - } -} diff --git a/extensions/swift/syntaxes/swift.tmLanguage.json b/extensions/swift/syntaxes/swift.tmLanguage.json deleted file mode 100644 index 632b3160377..00000000000 --- a/extensions/swift/syntaxes/swift.tmLanguage.json +++ /dev/null @@ -1,3239 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/swift.tmbundle/blob/master/Syntaxes/Swift.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/swift.tmbundle/commit/d31bae2e0d6a4d977187dc7f06f538d6ba56b89b", - "name": "Swift", - "scopeName": "source.swift", - "comment": "See swift.tmbundle/grammar-test.swift for test cases.", - "patterns": [ - { - "include": "#root" - } - ], - "repository": { - "attributes": { - "patterns": [ - { - "begin": "((@)available)(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.attribute.swift" - }, - "2": { - "name": "punctuation.definition.attribute.swift" - }, - "3": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.attribute.available.swift", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.platform.os.swift" - }, - "2": { - "name": "constant.numeric.swift" - } - }, - "match": "\\b(swift|(?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))?" - }, - { - "begin": "\\b(introduced|deprecated|obsoleted)\\s*(:)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b", - "name": "constant.numeric.swift" - } - ] - }, - { - "begin": "\\b(message|renamed)\\s*(:)\\s*(?=\")", - "beginCaptures": { - "1": { - "name": "keyword.other.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#literals" - } - ] - }, - { - "captures": { - "1": { - "name": "keyword.other.platform.all.swift" - }, - "2": { - "name": "keyword.other.swift" - }, - "3": { - "name": "invalid.illegal.character-not-allowed-here.swift" - } - }, - "match": "(?:(\\*)|\\b(deprecated|unavailable)\\b)\\s*(.*?)(?=[,)])" - } - ] - }, - { - "begin": "((@)objc)(\\()", - "beginCaptures": { - "1": { - "name": "storage.modifier.attribute.swift" - }, - "2": { - "name": "punctuation.definition.attribute.swift" - }, - "3": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.attribute.objc.swift", - "patterns": [ - { - "captures": { - "1": { - "name": "invalid.illegal.missing-colon-after-selector-piece.swift" - } - }, - "match": "\\w*(?::(?:\\w*:)*(\\w*))?", - "name": "entity.name.function.swift" - } - ] - }, - { - "begin": "(@)(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)", - "beginCaptures": { - "0": { - "name": "storage.modifier.attribute.swift" - }, - "1": { - "name": "punctuation.definition.attribute.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "comment": "any other attribute", - "end": "(?!\\G\\()", - "name": "meta.attribute.swift", - "patterns": [ - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.arguments.attribute.swift", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - } - ] - }, - "builtin-functions": { - "patterns": [ - { - "comment": "Member functions in the standard library in Swift 3 which may be used with trailing closures and no parentheses", - "match": "(?<=\\.)(?:s(?:ort(?:ed)?|plit)|contains|index|partition|f(?:i(?:lter|rst)|orEach|latMap)|with(?:MutableCharacters|CString|U(?:nsafe(?:Mutable(?:BufferPointer|Pointer(?:s|To(?:Header|Elements)))|BufferPointer)|TF8Buffer))|m(?:in|a(?:p|x)))(?=\\s*[({])\\b", - "name": "support.function.swift" - }, - { - "comment": "Member functions in the standard library in Swift 3", - "match": "(?<=\\.)(?:s(?:ymmetricDifference|t(?:oreBytes|arts|ride)|ortInPlace|u(?:ccessor|ffix|btract(?:ing|InPlace|WithOverflow)?)|quareRoot|amePosition)|h(?:oldsUnique(?:Reference|OrPinnedReference)|as(?:Suffix|Prefix))|ne(?:gate(?:d)?|xt)|c(?:o(?:untByEnumerating|py(?:Bytes)?)|lamp(?:ed)?|reate)|t(?:o(?:IntMax|Opaque|UIntMax)|ake(?:RetainedValue|UnretainedValue)|r(?:uncatingRemainder|a(?:nscodedLength|ilSurrogate)))|i(?:s(?:MutableAndUniquelyReferenced(?:OrPinned)?|S(?:trictSu(?:perset(?:Of)?|bset(?:Of)?)|u(?:perset(?:Of)?|bset(?:Of)?))|Continuation|T(?:otallyOrdered|railSurrogate)|Disjoint(?:With)?|Unique(?:Reference|lyReferenced(?:OrPinned)?)|Equal|Le(?:ss(?:ThanOrEqualTo)?|adSurrogate))|n(?:sert(?:ContentsOf)?|tersect(?:ion|InPlace)?|itialize(?:Memory|From)?|dex(?:Of|ForKey)))|o(?:verlaps|bjectAt)|d(?:i(?:stance(?:To)?|vide(?:d|WithOverflow)?)|e(?:s(?:cendant|troy)|code(?:CString)?|initialize|alloc(?:ate(?:Capacity)?)?)|rop(?:First|Last))|u(?:n(?:ion(?:InPlace)?|derestimateCount|wrappedOrError)|p(?:date(?:Value)?|percased))|join(?:ed|WithSeparator)|p(?:op(?:First|Last)|ass(?:Retained|Unretained)|re(?:decessor|fix))|e(?:scape(?:d)?|n(?:code|umerate(?:d)?)|lementsEqual|xclusiveOr(?:InPlace)?)|f(?:orm(?:Remainder|S(?:ymmetricDifference|quareRoot)|TruncatingRemainder|In(?:tersection|dex)|Union)|latten|rom(?:CString(?:RepairingIllFormedUTF8)?|Opaque))|w(?:i(?:thMemoryRebound|dth)|rite(?:To)?)|l(?:o(?:wercased|ad)|e(?:adSurrogate|xicographical(?:Compare|lyPrecedes)))|a(?:ss(?:ign(?:BackwardFrom|From)?|umingMemoryBound)|d(?:d(?:ing(?:Product)?|Product|WithOverflow)?|vanced(?:By)?)|utorelease|ppend(?:ContentsOf)?|lloc(?:ate)?|bs)|r(?:ound(?:ed)?|e(?:serveCapacity|tain|duce|place(?:Range|Subrange)?|verse(?:d)?|quest(?:NativeBuffer|UniqueMutableBackingBuffer)|lease|m(?:ove(?:Range|Subrange|Value(?:ForKey)?|First|Last|A(?:tIndex|ll))?|ainder(?:WithOverflow)?)))|ge(?:nerate|t(?:Objects|Element))|m(?:in(?:imum(?:Magnitude)?|Element)|ove(?:Initialize(?:Memory|BackwardFrom|From)?|Assign(?:From)?)?|ultipl(?:y(?:WithOverflow)?|ied)|easure|a(?:ke(?:Iterator|Description)|x(?:imum(?:Magnitude)?|Element)))|bindMemory)(?=\\s*\\()", - "name": "support.function.swift" - }, - { - "comment": "Member functions in the standard library in Swift 2 only", - "match": "(?<=\\.)(?:s(?:uperclassMirror|amePositionIn|tartsWith)|nextObject|c(?:haracterAtIndex|o(?:untByEnumeratingWithState|pyWithZone)|ustom(?:Mirror|PlaygroundQuickLook))|is(?:EmptyInput|ASCII)|object(?:Enumerator|ForKey|AtIndex)|join|put|keyEnumerator|withUnsafeMutablePointerToValue|length|getMirror|m(?:oveInitializeAssignFrom|ember))(?=\\s*\\()", - "name": "support.function.swift" - } - ] - }, - "builtin-global-functions": { - "patterns": [ - { - "begin": "\\b(type)(\\()\\s*(of)(:)", - "beginCaptures": { - "1": { - "name": "support.function.dynamic-type.swift" - }, - "2": { - "name": "punctuation.definition.arguments.begin.swift" - }, - "3": { - "name": "support.variable.parameter.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "include": "#expressions" - } - ] - }, - { - "comment": "Global functions available in Swift 3 which may be used with trailing closures and no parentheses", - "match": "\\b(?:anyGenerator|autoreleasepool)(?=\\s*[({])\\b", - "name": "support.function.swift" - }, - { - "comment": "Global functions available in Swift 3", - "match": "\\b(?:s(?:tride(?:of(?:Value)?)?|izeof(?:Value)?|equence|wap)|numericCast|transcode|is(?:UniquelyReferenced(?:NonObjC)?|KnownUniquelyReferenced)|zip|d(?:ump|ebugPrint)|unsafe(?:BitCast|Downcast|Unwrap|Address(?:Of)?)|pr(?:int|econdition(?:Failure)?)|fatalError|with(?:Unsafe(?:MutablePointer|Pointer)|ExtendedLifetime|VaList)|a(?:ssert(?:ionFailure)?|lignof(?:Value)?|bs)|re(?:peatElement|adLine)|getVaList|m(?:in|ax))(?=\\s*\\()", - "name": "support.function.swift" - }, - { - "comment": "Global functions available in Swift 2 only", - "match": "\\b(?:s(?:ort|uffix|pli(?:ce|t))|insert|overlaps|d(?:istance|rop(?:First|Last))|join|prefix|extend|withUnsafe(?:MutablePointers|Pointers)|lazy|advance|re(?:flect|move(?:Range|Last|A(?:tIndex|ll))))(?=\\s*\\()", - "name": "support.function.swift" - } - ] - }, - "builtin-properties": { - "patterns": [ - { - "comment": "The simpler (?<=\\bProcess\\.|\\bCommandLine\\.) breaks VS Code / Atom, see https://github.com/textmate/swift.tmbundle/issues/29", - "match": "(?<=^Process\\.|\\WProcess\\.|^CommandLine\\.|\\WCommandLine\\.)(arguments|argc|unsafeArgv)", - "name": "support.variable.swift" - }, - { - "comment": "Properties in the standard library in Swift 3", - "match": "(?<=\\.)(?:s(?:t(?:artIndex|ri(?:ngValue|de))|i(?:ze|gn(?:BitIndex|ificand(?:Bit(?:Count|Pattern)|Width)?|alingNaN)?)|u(?:perclassMirror|mmary|bscriptBaseAddress))|h(?:eader|as(?:hValue|PointerRepresentation))|n(?:ulTerminatedUTF8|ext(?:Down|Up)|a(?:n|tiveOwner))|c(?:haracters|ount(?:TrailingZeros)?|ustom(?:Mirror|PlaygroundQuickLook)|apacity)|i(?:s(?:S(?:ign(?:Minus|aling(?:NaN)?)|ubnormal)|N(?:ormal|aN)|Canonical|Infinite|Zero|Empty|Finite|ASCII)|n(?:dices|finity)|dentity)|owner|de(?:scription|bugDescription)|u(?:n(?:safelyUnwrapped|icodeScalar(?:s)?|derestimatedCount)|tf(?:16|8(?:Start|C(?:String|odeUnitCount))?)|intValue|ppercaseString|lp(?:OfOne)?)|p(?:i|ointee)|e(?:ndIndex|lements|xponent(?:Bit(?:Count|Pattern))?)|value(?:s)?|keys|quietNaN|f(?:irst(?:ElementAddress(?:IfContiguous)?)?|loatingPointClass)|l(?:ittleEndian|owercaseString|eastNo(?:nzeroMagnitude|rmalMagnitude)|a(?:st|zy))|a(?:l(?:ignment|l(?:ocatedElementCount|Zeros))|rray(?:PropertyIsNativeTypeChecked)?)|ra(?:dix|wValue)|greatestFiniteMagnitude|m(?:in|emory|ax)|b(?:yteS(?:ize|wapped)|i(?:nade|tPattern|gEndian)|uffer|ase(?:Address)?))\\b", - "name": "support.variable.swift" - }, - { - "comment": "Properties in the standard library in Swift 2 only", - "match": "(?<=\\.)(?:boolValue|disposition|end|objectIdentifier|quickLookObject|start|valueType)\\b", - "name": "support.variable.swift" - }, - { - "comment": "Enum cases in the standard library - note that there is some overlap between these and the properties", - "match": "(?<=\\.)(?:s(?:calarValue|i(?:ze|gnalingNaN)|o(?:und|me)|uppressed|prite|et)|n(?:one|egative(?:Subnormal|Normal|Infinity|Zero))|c(?:ol(?:or|lection)|ustomized)|t(?:o(?:NearestOr(?:Even|AwayFromZero)|wardZero)|uple|ext)|i(?:nt|mage)|optional|d(?:ictionary|o(?:uble|wn))|u(?:Int|p|rl)|p(?:o(?:sitive(?:Subnormal|Normal|Infinity|Zero)|int)|lus)|e(?:rror|mptyInput)|view|quietNaN|float|a(?:ttributedString|wayFromZero)|r(?:ectangle|ange)|generated|minus|b(?:ool|ezierPath))\\b", - "name": "support.variable.swift" - } - ] - }, - "builtin-types": { - "comment": "Types provided in the standard library", - "patterns": [ - { - "include": "#builtin-class-type" - }, - { - "include": "#builtin-enum-type" - }, - { - "include": "#builtin-protocol-type" - }, - { - "include": "#builtin-struct-type" - }, - { - "include": "#builtin-typealias" - }, - { - "match": "\\bAny\\b", - "name": "support.type.any.swift" - } - ], - "repository": { - "builtin-class-type": { - "comment": "Builtin class types", - "match": "\\b(Managed(Buffer|ProtoBuffer)|NonObjectiveCBase|AnyGenerator)\\b", - "name": "support.class.swift" - }, - "builtin-enum-type": { - "patterns": [ - { - "comment": "CommandLine is an enum, but it acts like a constant", - "match": "\\b(?:CommandLine|Process(?=\\.))\\b", - "name": "support.constant.swift" - }, - { - "comment": "The return type of a function that never returns", - "match": "\\bNever\\b", - "name": "support.constant.never.swift" - }, - { - "comment": "Enum types in the standard library in Swift 3", - "match": "\\b(?:ImplicitlyUnwrappedOptional|Representation|MemoryLayout|FloatingPointClassification|SetIndexRepresentation|SetIteratorRepresentation|FloatingPointRoundingRule|UnicodeDecodingResult|Optional|DictionaryIndexRepresentation|AncestorRepresentation|DisplayStyle|PlaygroundQuickLook|Never|FloatingPointSign|Bit|DictionaryIteratorRepresentation)\\b", - "name": "support.type.swift" - }, - { - "comment": "Enum types in the standard library in Swift 2 only", - "match": "\\b(?:MirrorDisposition|QuickLookObject)\\b", - "name": "support.type.swift" - } - ] - }, - "builtin-protocol-type": { - "patterns": [ - { - "comment": "Protocols in the standard library in Swift 3", - "match": "\\b(?:Ra(?:n(?:domAccess(?:Collection|Indexable)|geReplaceable(?:Collection|Indexable))|wRepresentable)|M(?:irrorPath|utable(?:Collection|Indexable))|Bi(?:naryFloatingPoint|twiseOperations|directional(?:Collection|Indexable))|S(?:tr(?:ideable|eamable)|igned(?:Number|Integer)|e(?:tAlgebra|quence))|Hashable|C(?:o(?:llection|mparable)|ustom(?:Reflectable|StringConvertible|DebugStringConvertible|PlaygroundQuickLookable|LeafReflectable)|VarArg)|TextOutputStream|I(?:n(?:teger(?:Arithmetic)?|dexable(?:Base)?)|teratorProtocol)|OptionSet|Un(?:signedInteger|icodeCodec)|E(?:quatable|rror|xpressibleBy(?:BooleanLiteral|String(?:Interpolation|Literal)|NilLiteral|IntegerLiteral|DictionaryLiteral|UnicodeScalarLiteral|ExtendedGraphemeClusterLiteral|FloatLiteral|ArrayLiteral))|FloatingPoint|L(?:osslessStringConvertible|azy(?:SequenceProtocol|CollectionProtocol))|A(?:nyObject|bsoluteValuable))\\b", - "name": "support.type.swift" - }, - { - "comment": "Protocols in the standard library in Swift 2 only", - "match": "\\b(?:Ran(?:domAccessIndexType|geReplaceableCollectionType)|GeneratorType|M(?:irror(?:Type|PathType)|utable(?:Sliceable|CollectionType))|B(?:i(?:twiseOperationsType|directionalIndexType)|oolean(?:Type|LiteralConvertible))|S(?:tring(?:InterpolationConvertible|LiteralConvertible)|i(?:nkType|gned(?:NumberType|IntegerType))|e(?:tAlgebraType|quenceType)|liceable)|NilLiteralConvertible|C(?:ollectionType|VarArgType)|Inte(?:rvalType|ger(?:Type|LiteralConvertible|ArithmeticType))|O(?:utputStreamType|ptionSetType)|DictionaryLiteralConvertible|Un(?:signedIntegerType|icode(?:ScalarLiteralConvertible|CodecType))|E(?:rrorType|xten(?:sibleCollectionType|dedGraphemeClusterLiteralConvertible))|F(?:orwardIndexType|loat(?:ingPointType|LiteralConvertible))|A(?:nyCollectionType|rrayLiteralConvertible))\\b", - "name": "support.type.swift" - } - ] - }, - "builtin-struct-type": { - "patterns": [ - { - "comment": "Structs in the standard library in Swift 3", - "match": "\\b(?:R(?:e(?:peat(?:ed)?|versed(?:RandomAccess(?:Collection|Index)|Collection|Index))|an(?:domAccessSlice|ge(?:Replaceable(?:RandomAccessSlice|BidirectionalSlice|Slice)|Generator)?))|Generator(?:Sequence|OfOne)|M(?:irror|utable(?:Ran(?:domAccessSlice|geReplaceable(?:RandomAccessSlice|BidirectionalSlice|Slice))|BidirectionalSlice|Slice)|anagedBufferPointer)|B(?:idirectionalSlice|ool)|S(?:t(?:aticString|ri(?:ng|deT(?:hrough(?:Generator|Iterator)?|o(?:Generator|Iterator)?)))|et(?:I(?:ndex|terator))?|lice)|HalfOpenInterval|C(?:haracter(?:View)?|o(?:ntiguousArray|untable(?:Range|ClosedRange)|llectionOfOne)|OpaquePointer|losed(?:Range(?:I(?:ndex|terator))?|Interval)|VaListPointer)|I(?:n(?:t(?:16|8|32|64)?|d(?:ices|ex(?:ing(?:Generator|Iterator))?))|terator(?:Sequence|OverOne)?)|Zip2(?:Sequence|Iterator)|O(?:paquePointer|bjectIdentifier)|D(?:ictionary(?:I(?:ndex|terator)|Literal)?|ouble|efault(?:RandomAccessIndices|BidirectionalIndices|Indices))|U(?:n(?:safe(?:RawPointer|Mutable(?:RawPointer|BufferPointer|Pointer)|BufferPointer(?:Generator|Iterator)?|Pointer)|icodeScalar(?:View)?|foldSequence|managed)|TF(?:16(?:View)?|8(?:View)?|32)|Int(?:16|8|32|64)?)|Join(?:Generator|ed(?:Sequence|Iterator))|PermutationGenerator|E(?:numerate(?:Generator|Sequence|d(?:Sequence|Iterator))|mpty(?:Generator|Collection|Iterator))|Fl(?:oat(?:80)?|atten(?:Generator|BidirectionalCollection(?:Index)?|Sequence|Collection(?:Index)?|Iterator))|L(?:egacyChildren|azy(?:RandomAccessCollection|Map(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Collection|Iterator)|BidirectionalCollection|Sequence|Collection|Filter(?:Generator|BidirectionalCollection|Sequence|Collection|I(?:ndex|terator))))|A(?:ny(?:RandomAccessCollection|Generator|BidirectionalCollection|Sequence|Hashable|Collection|I(?:ndex|terator))|utoreleasingUnsafeMutablePointer|rray(?:Slice)?))\\b", - "name": "support.type.swift" - }, - { - "comment": "Structs in the standard library in Swift 2 only", - "match": "\\b(?:R(?:everse(?:RandomAccess(?:Collection|Index)|Collection|Index)|awByte)|Map(?:Generator|Sequence|Collection)|S(?:inkOf|etGenerator)|Zip2Generator|DictionaryGenerator|Filter(?:Generator|Sequence|Collection(?:Index)?)|LazyForwardCollection|Any(?:RandomAccessIndex|BidirectionalIndex|Forward(?:Collection|Index)))\\b", - "name": "support.type.swift" - } - ] - }, - "builtin-typealias": { - "patterns": [ - { - "comment": "Typealiases in the standard library in Swift 3", - "match": "\\b(?:Raw(?:Significand|Exponent|Value)|B(?:ooleanLiteralType|uffer|ase)|S(?:t(?:orage|r(?:i(?:ngLiteralType|de)|eam(?:1|2)))|ubSequence)|NativeBuffer|C(?:hild(?:ren)?|Bool|S(?:hort|ignedChar)|odeUnit|Char(?:16|32)?|Int|Double|Unsigned(?:Short|Char|Int|Long(?:Long)?)|Float|WideChar|Long(?:Long)?)|I(?:n(?:t(?:Max|egerLiteralType)|d(?:ices|ex(?:Distance)?))|terator)|Distance|U(?:n(?:icodeScalar(?:Type|Index|View|LiteralType)|foldFirstSequence)|TF(?:16(?:Index|View)|8Index)|IntMax)|E(?:lement(?:s)?|x(?:tendedGraphemeCluster(?:Type|LiteralType)|ponent))|V(?:oid|alue)|Key|Float(?:32|LiteralType|64)|AnyClass)\\b", - "name": "support.type.swift" - }, - { - "comment": "Typealiases in the standard library in Swift 2 only", - "match": "\\b(?:Generator|PlaygroundQuickLook|UWord|Word)\\b", - "name": "support.type.swift" - } - ] - } - } - }, - "code-block": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.scope.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.scope.end.swift" - } - }, - "patterns": [ - { - "include": "$self" - } - ] - }, - "comments": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.comment.swift" - } - }, - "match": "\\A^(#!).*$\\n?", - "name": "comment.line.number-sign.swift" - }, - { - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "name": "comment.block.documentation.swift", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "begin": "/\\*:", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "name": "comment.block.documentation.playground.swift", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "begin": "/\\*", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.begin.swift" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.end.swift" - } - }, - "name": "comment.block.swift", - "patterns": [ - { - "include": "#nested" - } - ] - }, - { - "match": "\\*/", - "name": "invalid.illegal.unexpected-end-of-block-comment.swift" - }, - { - "begin": "(^[ \\t]+)?(?=//)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "///", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - }, - "end": "^", - "name": "comment.line.triple-slash.documentation.swift" - }, - { - "begin": "//:", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - }, - "end": "^", - "name": "comment.line.double-slash.documentation.swift" - }, - { - "begin": "//", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.swift" - } - }, - "end": "^", - "name": "comment.line.double-slash.swift" - } - ] - } - ], - "repository": { - "nested": { - "begin": "/\\*", - "end": "\\*/", - "patterns": [ - { - "include": "#nested" - } - ] - } - } - }, - "compiler-control": { - "patterns": [ - { - "begin": "^\\s*(#)(if|elseif)\\s+(false)\\b.*?(?=$|//|/\\*)", - "beginCaptures": { - "0": { - "name": "meta.preprocessor.conditional.swift" - }, - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.conditional.swift" - }, - "3": { - "name": "constant.language.boolean.swift" - } - }, - "contentName": "comment.block.preprocessor.swift", - "end": "(?=^\\s*(#(elseif|else|endif)\\b))" - }, - { - "begin": "^\\s*(#)(if|elseif)\\s+", - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.conditional.swift" - } - }, - "end": "(?=\\s*(?://|/\\*))|$", - "name": "meta.preprocessor.conditional.swift", - "patterns": [ - { - "match": "(&&|\\|\\|)", - "name": "keyword.operator.logical.swift" - }, - { - "match": "\\b(true|false)\\b", - "name": "constant.language.boolean.swift" - }, - { - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "support.constant.platform.architecture.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "match": "\\b(arch)\\s*(\\()\\s*(?:(arm|arm64|powerpc64|powerpc64le|i386|x86_64|s390x)|\\w+)\\s*(\\))" - }, - { - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "support.constant.platform.os.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "match": "\\b(os)\\s*(\\()\\s*(?:(macOS|OSX|iOS|tvOS|watchOS|Android|Linux|FreeBSD|Windows|PS4)|\\w+)\\s*(\\))" - }, - { - "captures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "3": { - "name": "entity.name.type.module.swift" - }, - "4": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "match": "\\b(canImport)\\s*(\\()([\\p{L}_][\\p{L}_\\p{N}\\p{M}]*)(\\))" - }, - { - "begin": "\\b(targetEnvironment)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "(\\))|$", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "match": "\\b(simulator|UIKitForMac)\\b", - "name": "support.constant.platform.environment.swift" - } - ] - }, - { - "begin": "\\b(swift|compiler)\\s*(\\()", - "beginCaptures": { - "1": { - "name": "keyword.other.condition.swift" - }, - "2": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "(\\))|$", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "match": ">=|<", - "name": "keyword.operator.comparison.swift" - }, - { - "match": "\\b[0-9]+(?:\\.[0-9]+)*\\b", - "name": "constant.numeric.swift" - } - ] - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.conditional.swift" - }, - "3": { - "patterns": [ - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - }, - "match": "^\\s*(#)(else|endif)(.*?)(?=$|//|/\\*)", - "name": "meta.preprocessor.conditional.swift" - }, - { - "captures": { - "1": { - "name": "punctuation.definition.preprocessor.swift" - }, - "2": { - "name": "keyword.control.preprocessor.sourcelocation.swift" - }, - "4": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "5": { - "patterns": [ - { - "begin": "(file)\\s*(:)\\s*(?=\")", - "beginCaptures": { - "1": { - "name": "support.variable.parameter.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#literals" - } - ] - }, - { - "captures": { - "1": { - "name": "support.variable.parameter.swift" - }, - "2": { - "name": "punctuation.separator.key-value.swift" - }, - "3": { - "name": "constant.numeric.integer.swift" - } - }, - "match": "(line)\\s*(:)\\s*([0-9]+)" - }, - { - "match": ",", - "name": "punctuation.separator.parameters.swift" - }, - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - }, - "6": { - "name": "punctuation.definition.parameters.begin.swift" - }, - "7": { - "patterns": [ - { - "match": "\\S+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - }, - "match": "^\\s*(#)(sourceLocation)((\\()([^)]*)(\\)))(.*?)(?=$|//|/\\*)", - "name": "meta.preprocessor.sourcelocation.swift" - } - ] - }, - "declarations": { - "patterns": [ - { - "include": "#function" - }, - { - "include": "#function-initializer" - }, - { - "include": "#typed-variable-declaration" - }, - { - "include": "#import" - }, - { - "include": "#operator" - }, - { - "include": "#precedencegroup" - }, - { - "include": "#protocol" - }, - { - "include": "#type" - }, - { - "include": "#extension" - }, - { - "include": "#typealias" - } - ], - "repository": { - "available-types": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#builtin-types" - }, - { - "include": "#attributes" - }, - { - "match": "\\b(?:throws|rethrows)\\b", - "name": "keyword.control.exception.swift" - }, - { - "match": "\\bsome\\b", - "name": "keyword.operator.type.opaque.swift" - }, - { - "match": "\\binout\\b", - "name": "storage.modifier.swift" - }, - { - "match": "\\bSelf\\b", - "name": "variable.language.swift" - }, - { - "captures": { - "1": { - "name": "keyword.operator.type.function.swift" - } - }, - "match": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])" - }, - { - "captures": { - "1": { - "name": "keyword.operator.type.composition.swift" - } - }, - "comment": "Swift 3: A & B", - "match": "(?&|\\^~.])(&)(?![/=\\-+!*%<>&|\\^~.])" - }, - { - "match": "[?!]", - "name": "keyword.operator.type.optional.swift" - }, - { - "match": "\\.\\.\\.", - "name": "keyword.operator.function.variadic-parameter.swift" - }, - { - "comment": "Swift 2: protocol", - "match": "\\bprotocol\\b", - "name": "keyword.operator.type.composition.swift" - }, - { - "match": "(?<=\\.)(?:Protocol|Type)\\b", - "name": "keyword.operator.type.metatype.swift" - }, - { - "include": "#tuple-type" - }, - { - "include": "#collection-type" - }, - { - "include": "#generic-argument-clause" - } - ], - "repository": { - "collection-type": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.section.collection-type.begin.swift" - } - }, - "comment": "array and dictionary types [Value] and [Key: Value]", - "end": "\\]|(?=[>){}])", - "endCaptures": { - "0": { - "name": "punctuation.section.collection-type.end.swift" - } - }, - "patterns": [ - { - "include": "#available-types" - }, - { - "begin": ":", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.swift" - } - }, - "end": "(?=\\]|[>){}])", - "patterns": [ - { - "match": ":", - "name": "invalid.illegal.extra-colon-in-dictionary-type.swift" - }, - { - "include": "#available-types" - } - ] - } - ] - }, - "tuple-type": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.tuple-type.begin.swift" - } - }, - "end": "\\)|(?=[>\\]{}])", - "endCaptures": { - "0": { - "name": "punctuation.section.tuple-type.end.swift" - } - }, - "patterns": [ - { - "include": "#available-types" - } - ] - } - } - }, - "extension": { - "begin": "\\b(extension)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.$1.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "comment": "SE-0143: Conditional Conformances", - "include": "#generic-where-clause" - }, - { - "include": "#inheritance-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function": { - "begin": "(?x)\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(func)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n\t\t\t\t\t\t | (?:\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\g\n\t\t\t\t\t\t\t\t\t | (?\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t | ( \\. ( \\g | \\g | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})|$(?# functions in protocol declarations or generated interfaces have no body)", - "name": "meta.definition.function.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "include": "#parameter-clause" - }, - { - "include": "#function-result" - }, - { - "match": "\\b(?:throws|rethrows)\\b", - "name": "keyword.control.exception.swift" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#generic-where-clause" - }, - { - "begin": "(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.section.function.begin.swift" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.section.function.end.swift" - } - }, - "name": "meta.definition.function.body.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - "function-initializer": { - "begin": "(?&|\\^~.])(->)(?![/=\\-+!*%<>&|\\^~.])\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.function-result.swift" - } - }, - "end": "(?!\\G)(?=\\{|\\bwhere\\b|;)|$", - "name": "meta.function-result.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "generic-argument-clause": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.separator.generic-argument-clause.begin.swift" - } - }, - "end": ">|(?=[)\\]{}])", - "endCaptures": { - "0": { - "name": "punctuation.separator.generic-argument-clause.end.swift" - } - }, - "name": "meta.generic-argument-clause.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "generic-parameter-clause": { - "begin": "<", - "beginCaptures": { - "0": { - "name": "punctuation.separator.generic-parameter-clause.begin.swift" - } - }, - "end": ">|(?=[^\\w\\d:<>\\s,=&`])(?# characters besides these are never valid in a generic param list -- even if it's not really a valid clause, we should stop trying to parse it if we see one of them.)", - "endCaptures": { - "0": { - "name": "punctuation.separator.generic-parameter-clause.end.swift" - } - }, - "name": "meta.generic-parameter-clause.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "comment": "Swift 2: constraints inside the generic param list", - "include": "#generic-where-clause" - }, - { - "captures": { - "1": { - "name": "variable.language.generic-parameter.swift" - } - }, - "match": "\\b((?!\\d)\\w[\\w\\d]*)\\b" - }, - { - "match": ",", - "name": "punctuation.separator.generic-parameters.swift" - }, - { - "begin": "(:)\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.separator.generic-parameter-constraint.swift" - } - }, - "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", - "name": "meta.generic-parameter-constraint.swift", - "patterns": [ - { - "begin": "\\G", - "end": "(?=[,>]|(?!\\G)\\bwhere\\b)", - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#type-identifier" - } - ] - } - ] - } - ] - }, - "generic-where-clause": { - "begin": "\\b(where)\\b\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.generic-constraint-introducer.swift" - } - }, - "end": "(?!\\G)$|(?=[>{};\\n]|//|/\\*)", - "name": "meta.generic-where-clause.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#requirement-list" - } - ], - "repository": { - "requirement-list": { - "begin": "\\G|,\\s*", - "end": "(?=[,>{};\\n]|//|/\\*)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#constraint" - }, - { - "include": "#available-types" - }, - { - "begin": "(?&|\\^~.])(==)(?![/=\\-+!*%<>&|\\^~.])", - "beginCaptures": { - "1": { - "name": "keyword.operator.generic-constraint.same-type.swift" - } - }, - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "name": "meta.generic-where-clause.same-type-requirement.swift", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - { - "begin": "(?&|\\^~.])(:)(?![/=\\-+!*%<>&|\\^~.])", - "beginCaptures": { - "1": { - "name": "keyword.operator.generic-constraint.conforms-to.swift" - } - }, - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "name": "meta.generic-where-clause.conformance-requirement.swift", - "patterns": [ - { - "begin": "\\G\\s*", - "contentName": "entity.other.inherited-class.swift", - "end": "(?=\\s*[,>{};\\n]|//|/\\*)", - "patterns": [ - { - "include": "#available-types" - } - ] - } - ] - } - ] - } - } - }, - "import": { - "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n\t\t\t\t\t\t\t\t\t", - "name": "entity.name.type.swift" - }, - { - "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t\\$[0-9]+\n\t\t\t\t\t\t\t\t\t", - "name": "entity.name.type.swift" - }, - { - "captures": { - "1": { - "patterns": [ - { - "match": "\\.", - "name": "invalid.illegal.dot-not-allowed-here.swift" - } - ] - } - }, - "match": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?<=\\G|\\.)\n\t\t\t\t\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t(?\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\\g\n\t\t\t\t\t\t\t\t\t\t\t\t | (?\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t\t\t)*\n\t\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t | ( \\. ( \\g | \\g | \\. )+ )\t\t\t# Dot operators\n\t\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\t\t(?=\\.|;|$|//|/\\*|\\s)\n\t\t\t\t\t\t\t\t\t", - "name": "entity.name.type.swift" - }, - { - "match": "\\.", - "name": "punctuation.separator.import.swift" - }, - { - "begin": "(?!\\s*(;|$|//|/\\*))", - "end": "(?=\\s*(;|$|//|/\\*))", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - } - ] - }, - "inheritance-clause": { - "begin": "(:)(?=\\s*\\{)|(:)\\s*", - "beginCaptures": { - "1": { - "name": "invalid.illegal.empty-inheritance-clause.swift" - }, - "2": { - "name": "punctuation.separator.inheritance-clause.swift" - } - }, - "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", - "name": "meta.inheritance-clause.swift", - "patterns": [ - { - "begin": "\\bclass\\b", - "beginCaptures": { - "0": { - "name": "storage.type.class.swift" - } - }, - "end": "(?=[={}]|(?!\\G)\\bwhere\\b)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#more-types" - } - ] - }, - { - "begin": "\\G", - "end": "(?!\\G)$|(?=[={}]|(?!\\G)\\bwhere\\b)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#inherited-type" - }, - { - "include": "#more-types" - } - ] - } - ], - "repository": { - "inherited-type": { - "begin": "(?=[`\\p{L}_])", - "end": "(?!\\G)", - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#type-identifier" - } - ] - }, - "more-types": { - "begin": ",\\s*", - "end": "(?!\\G)(?!//|/\\*)|(?=[,={}]|(?!\\G)\\bwhere\\b)", - "name": "meta.inheritance-list.more-types", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#inherited-type" - }, - { - "include": "#more-types" - } - ] - } - } - }, - "operator": { - "begin": "(?x)\n\t\t\t\t\t\t(?:\n\t\t\t\t\t\t\t\\b(prefix|infix|postfix)\n\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t)?\n\t\t\t\t\t\t\\b\n\t\t\t\t\t\t(operator)\n\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(?\t\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\\g\n\t\t\t\t\t\t\t\t | \\.\t\t\t\t\t\t\t\t\t# Invalid dot\n\t\t\t\t\t\t\t\t | (?\t\t\t\t\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)*+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | ( \\. ( \\g | \\g | \\. )++ )\t\t\t# Dot operators\n\t\t\t\t\t\t)\n\t\t\t\t\t\t\\s*\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "storage.type.function.operator.swift" - }, - "3": { - "name": "entity.name.function.operator.swift" - }, - "4": { - "patterns": [ - { - "match": "\\.", - "name": "invalid.illegal.dot-not-allowed-here.swift" - } - ] - } - }, - "end": "(;)|$\\n?|(?=//|/\\*)", - "endCaptures": { - "1": { - "name": "punctuation.terminator.statement.swift" - } - }, - "name": "meta.definition.operator.swift", - "patterns": [ - { - "include": "#swift2" - }, - { - "include": "#swift3" - }, - { - "match": "((?!$|;|//|/\\*)\\S)+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ], - "repository": { - "swift2": { - "begin": "\\G(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.operator.begin.swift" - } - }, - "end": "(\\})", - "endCaptures": { - "1": { - "name": "punctuation.definition.operator.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "keyword.other.operator.associativity.swift" - } - }, - "match": "\\b(associativity)\\s+(left|right)\\b" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "constant.numeric.integer.swift" - } - }, - "match": "\\b(precedence)\\s+([0-9]+)\\b" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - } - }, - "match": "\\b(assignment)\\b" - } - ] - }, - "swift3": { - "captures": { - "2": { - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#types-precedencegroup" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "match": "\\G(:)\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))" - } - } - }, - "parameter-clause": { - "begin": "(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "(\\))", - "endCaptures": { - "1": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "name": "meta.parameter-clause.swift", - "patterns": [ - { - "include": "#parameter-list" - } - ] - }, - "parameter-list": { - "patterns": [ - { - "captures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "variable.parameter.function.swift" - }, - "5": { - "name": "punctuation.definition.identifier.swift" - }, - "6": { - "name": "punctuation.definition.identifier.swift" - } - }, - "comment": "External parameter labels are considered part of the function name", - "match": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))(?=\\s*:)" - }, - { - "captures": { - "1": { - "name": "variable.parameter.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "comment": "If no external label is given, the name is both the external label and the internal variable name", - "match": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)))(?=\\s*:)" - }, - { - "begin": ":\\s*(?!\\s)", - "end": "(?=[,)])", - "patterns": [ - { - "include": "#available-types" - }, - { - "match": ":", - "name": "invalid.illegal.extra-colon-in-parameter-list.swift" - }, - { - "begin": "=", - "beginCaptures": { - "0": { - "name": "keyword.operator.assignment.swift" - } - }, - "comment": "a parameter's default value", - "end": "(?=[,)])", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - } - ] - }, - "precedencegroup": { - "begin": "\\b(precedencegroup)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(?=\\{)", - "beginCaptures": { - "1": { - "name": "storage.type.precedencegroup.swift" - }, - "2": { - "name": "entity.name.type.precedencegroup.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!\\G)", - "name": "meta.definition.precedencegroup.swift", - "patterns": [ - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.precedencegroup.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.precedencegroup.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "entity.other.inherited-class.swift", - "patterns": [ - { - "include": "#types-precedencegroup" - } - ] - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "match": "\\b(higherThan|lowerThan)\\s*:\\s*((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "keyword.other.operator.associativity.swift" - } - }, - "match": "\\b(associativity)\\b(?:\\s*:\\s*(right|left|none)\\b)?" - }, - { - "captures": { - "1": { - "name": "storage.modifier.swift" - }, - "2": { - "name": "constant.language.boolean.swift" - } - }, - "match": "\\b(assignment)\\b(?:\\s*:\\s*(true|false)\\b)?" - } - ] - } - ] - }, - "protocol": { - "begin": "\\b(protocol)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.protocol.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#inheritance-clause" - }, - { - "comment": "SE-0142: Permit where clauses to constrain associated types", - "include": "#generic-where-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "#protocol-method" - }, - { - "include": "#protocol-initializer" - }, - { - "include": "#associated-type" - }, - { - "include": "$self" - } - ] - } - ], - "repository": { - "associated-type": { - "begin": "\\b(associatedtype)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration-specifier.swift" - }, - "2": { - "name": "variable.language.associatedtype.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!\\G)$|(?=[;}]|$)", - "name": "meta.definition.associatedtype.swift", - "patterns": [ - { - "include": "#inheritance-clause" - }, - { - "comment": "SE-0142: Permit where clauses to constrain associated types", - "include": "#generic-where-clause" - }, - { - "include": "#typealias-assignment" - } - ] - }, - "protocol-initializer": { - "begin": "(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\n\t\t \t\t\t\t\t\t | (?:\n\t\t \t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t(?\t\t\t\t\t\t\t\t# operator-head\n\t\t \t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t \t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t \t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t(\n\t\t \t\t\t\t\t\t\t\t\t\t\\g\n\t\t \t\t\t\t\t\t\t\t\t | (?\t\t\t\t\t\t\t\t# operator-character\n\t\t \t\t\t\t\t\t\t\t\t\t\t[\\x{0300}-\\x{036F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t \t\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t \t\t\t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t\t\t)*\n\t\t \t\t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t\t | ( \\. ( \\g | \\g | \\. )+ )\t\t\t# Dot operators\n\t\t \t\t\t\t\t\t\t)\n\t\t \t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t\\s*\n\t\t\t\t\t\t\t\t(?=\\(|<)\n\t\t\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "storage.type.function.swift" - }, - "2": { - "name": "entity.name.function.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "$|(?=;|//|/\\*|\\})", - "name": "meta.definition.function.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "include": "#parameter-clause" - }, - { - "include": "#function-result" - }, - { - "match": "\\b(?:throws|rethrows)\\b", - "name": "keyword.control.exception.swift" - }, - { - "comment": "Swift 3: generic constraints after the parameters and return type", - "include": "#generic-where-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.section.function.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.section.function.end.swift" - } - }, - "name": "invalid.illegal.function-body-not-allowed-in-protocol.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - } - } - }, - "type": { - "patterns": [ - { - "begin": "\\b(class(?!\\s+(?:func|var|let)\\b)|struct)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.$1.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "comment": "Swift 3: generic constraints after the generic param list", - "include": "#generic-where-clause" - }, - { - "include": "#inheritance-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "$self" - } - ] - } - ] - }, - { - "include": "#type-enum" - } - ] - }, - "type-enum": { - "begin": "\\b(enum)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))", - "beginCaptures": { - "1": { - "name": "storage.type.$1.swift" - }, - "2": { - "name": "entity.name.type.$1.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?<=\\})", - "name": "meta.definition.type.$1.swift", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#generic-parameter-clause" - }, - { - "comment": "Swift 3: generic constraints after the generic param list", - "include": "#generic-where-clause" - }, - { - "include": "#inheritance-clause" - }, - { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.type.begin.swift" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.type.end.swift" - } - }, - "name": "meta.definition.type.body.swift", - "patterns": [ - { - "include": "#enum-case-clause" - }, - { - "include": "$self" - } - ] - } - ], - "repository": { - "associated-values": { - "begin": "\\G\\(", - "beginCaptures": { - "0": { - "name": "punctuation.definition.parameters.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.parameters.end.swift" - } - }, - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "(?x)\n\t\t\t\t\t\t\t\t\t\t(?:(_)|((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\t\t\t\t\t\t\t\t\t\t\\s+\n\t\t\t\t\t\t\t\t\t\t(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\n\t\t\t\t\t\t\t\t\t\t\\s*(:)", - "beginCaptures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "invalid.illegal.distinct-labels-not-allowed.swift" - }, - "5": { - "name": "variable.parameter.function.swift" - }, - "7": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - { - "begin": "(((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*\\k))\\s*(:)", - "beginCaptures": { - "1": { - "name": "entity.name.function.swift" - }, - "2": { - "name": "variable.parameter.function.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - { - "begin": "(?![,)\\]])(?=\\S)", - "comment": "an element without a label (i.e. anything else)", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#available-types" - }, - { - "match": ":", - "name": "invalid.illegal.extra-colon-in-parameter-list.swift" - } - ] - } - ] - }, - "enum-case": { - "begin": "(?x)((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "beginCaptures": { - "1": { - "name": "constant.other.swift" - } - }, - "end": "(?<=\\))|(?![=(])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#associated-values" - }, - { - "include": "#raw-value-assignment" - } - ] - }, - "enum-case-clause": { - "begin": "\\b(case)\\b\\s*", - "beginCaptures": { - "1": { - "name": "storage.type.enum.case.swift" - } - }, - "end": "(?=[;}])|(?!\\G)(?!//|/\\*)(?=[^\\s,])", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#enum-case" - }, - { - "include": "#more-cases" - } - ] - }, - "more-cases": { - "begin": ",\\s*", - "end": "(?!\\G)(?!//|/\\*)(?=[;}]|[^\\s,])", - "name": "meta.enum-case.more-cases", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#enum-case" - }, - { - "include": "#more-cases" - } - ] - }, - "raw-value-assignment": { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.swift" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#literals" - } - ] - } - } - }, - "type-identifier": { - "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "beginCaptures": { - "1": { - "name": "meta.type-name.swift", - "patterns": [ - { - "include": "#builtin-types" - } - ] - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!<)", - "patterns": [ - { - "begin": "(?=<)", - "end": "(?!\\G)", - "patterns": [ - { - "include": "#generic-argument-clause" - } - ] - } - ] - }, - "typealias": { - "begin": "\\b(typealias)\\s+((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration-specifier.swift" - }, - "2": { - "name": "entity.name.type.typealias.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.identifier.swift" - } - }, - "end": "(?!\\G)$|(?=;|//|/\\*|$)", - "name": "meta.definition.typealias.swift", - "patterns": [ - { - "begin": "\\G(?=<)", - "end": "(?!\\G)", - "patterns": [ - { - "include": "#generic-parameter-clause" - } - ] - }, - { - "include": "#typealias-assignment" - } - ] - }, - "typealias-assignment": { - "begin": "(=)\\s*", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.swift" - } - }, - "end": "(?!\\G)$|(?=;|//|/\\*|$)", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "typed-variable-declaration": { - "begin": "(?x)\n\t\t\t\t\t\t\\b(let|var)\\b\\s+\n\t\t\t\t\t\t(?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)\\s*\n\t\t\t\t\t\t:\n\t\t\t\t\t", - "beginCaptures": { - "1": { - "name": "keyword.other.declaration-specifier.swift" - } - }, - "end": "(?=$|[={])", - "patterns": [ - { - "include": "#available-types" - } - ] - }, - "types-precedencegroup": { - "patterns": [ - { - "comment": "Precedence groups in the standard library", - "match": "\\b(?:BitwiseShift|Assignment|RangeFormation|Casting|Addition|NilCoalescing|Comparison|LogicalConjunction|LogicalDisjunction|Default|Ternary|Multiplication|FunctionArrow)Precedence\\b", - "name": "support.type.swift" - } - ] - } - } - }, - "expressions": { - "patterns": [ - { - "include": "#comments" - }, - { - "include": "#code-block" - }, - { - "include": "#attributes" - }, - { - "include": "#closure-parameter" - }, - { - "include": "#literals" - }, - { - "include": "#operators" - }, - { - "include": "#builtin-types" - }, - { - "include": "#builtin-functions" - }, - { - "include": "#builtin-global-functions" - }, - { - "include": "#builtin-properties" - }, - { - "include": "#compound-name" - }, - { - "include": "#keywords" - }, - { - "include": "#function-call-expression" - }, - { - "include": "#subscript-expression" - }, - { - "include": "#parenthesized-expression" - }, - { - "include": "#member-reference" - }, - { - "include": "#availability-condition" - }, - { - "match": "\\b_\\b", - "name": "support.variable.discard-value.swift" - } - ], - "repository": { - "availability-condition": { - "begin": "\\B(#available)(\\()", - "beginCaptures": { - "1": { - "name": "support.function.availability-condition.swift" - }, - "2": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.platform.os.swift" - }, - "2": { - "name": "constant.numeric.swift" - } - }, - "match": "\\s*\\b((?:iOS|macOS|OSX|watchOS|tvOS|UIKitForMac)(?:ApplicationExtension)?)\\b(?:\\s+([0-9]+(?:\\.[0-9]+)*\\b))" - }, - { - "captures": { - "1": { - "name": "keyword.other.platform.all.swift" - }, - "2": { - "name": "invalid.illegal.character-not-allowed-here.swift" - } - }, - "match": "(\\*)\\s*(.*?)(?=[,)])" - }, - { - "match": "[^\\s,)]+", - "name": "invalid.illegal.character-not-allowed-here.swift" - } - ] - }, - "closure-parameter": { - "match": "\\$[0-9]+", - "name": "variable.language.closure-parameter.swift" - }, - "compound-name": { - "captures": { - "1": { - "name": "entity.name.function.compound-name.swift" - }, - "2": { - "name": "punctuation.definition.entity.swift" - }, - "3": { - "name": "punctuation.definition.entity.swift" - }, - "4": { - "patterns": [ - { - "captures": { - "1": { - "name": "punctuation.definition.entity.swift" - }, - "2": { - "name": "punctuation.definition.entity.swift" - } - }, - "match": "(?`?)(?!_:)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k):", - "name": "entity.name.function.compound-name.swift" - } - ] - } - }, - "comment": "a reference to a function with disambiguating argument labels, such as foo(_:), foo(bar:), etc.", - "match": "(?x)\n\t\t\t\t\t\t((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) \t\t# function name\n\t\t\t\t\t\t\\(\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k)) \t# argument label\n\t\t\t\t\t\t\t\t\t:\t\t\t\t\t\t\t\t\t\t\t\t# colon\n\t\t\t\t\t\t\t\t)+\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\\)\n\t\t\t\t\t" - }, - "expression-element-list": { - "patterns": [ - { - "include": "#comments" - }, - { - "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(:)", - "beginCaptures": { - "1": { - "name": "support.function.any-method.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.separator.argument-label.swift" - } - }, - "comment": "an element with a label", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#expressions" - } - ] - }, - { - "begin": "(?![,)\\]])(?=\\S)", - "comment": "an element without a label (i.e. anything else)", - "end": "(?=[,)\\]])", - "patterns": [ - { - "include": "#expressions" - } - ] - } - ] - }, - "function-call-expression": { - "patterns": [ - { - "begin": "((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))\\s*(\\()", - "beginCaptures": { - "1": { - "name": "support.function.any-method.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - }, - "4": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "comment": "foo(args) -- a call whose callee is a highlightable name", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.function-call.swift", - "patterns": [ - { - "include": "#expression-element-list" - } - ] - }, - { - "begin": "(?<=[`\\])}>\\p{L}_\\p{N}\\p{M}])\\s*(\\()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "comment": "[Int](args) -- a call whose callee is a more complicated expression", - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.function-call.swift", - "patterns": [ - { - "include": "#expression-element-list" - } - ] - } - ] - }, - "member-reference": { - "patterns": [ - { - "captures": { - "1": { - "name": "variable.other.swift" - }, - "2": { - "name": "punctuation.definition.identifier.swift" - }, - "3": { - "name": "punctuation.definition.identifier.swift" - } - }, - "match": "(?<=\\.)((?`?)[\\p{L}_][\\p{L}_\\p{N}\\p{M}]*(\\k))" - } - ] - }, - "parenthesized-expression": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.tuple.begin.swift" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.tuple.end.swift" - } - }, - "patterns": [ - { - "include": "#expression-element-list" - } - ] - }, - "subscript-expression": { - "begin": "(?<=[`\\p{L}_\\p{N}\\p{M}])\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.arguments.begin.swift" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.arguments.end.swift" - } - }, - "name": "meta.subscript-expression.swift", - "patterns": [ - { - "include": "#expression-element-list" - } - ] - } - } - }, - "keywords": { - "patterns": [ - { - "match": "(?\t\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\n\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\\g\t\t\t\t\t\t\t# operator-head\n\t\t\t\t\t\t\t | \\.\n\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t)\n\t\t\t\t\t", - "comment": "This rule helps us speed up the matching.", - "end": "(?!\\G)", - "patterns": [ - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G(\\+\\+|\\-\\-)$", - "name": "keyword.operator.increment-or-decrement.swift" - }, - { - "match": "\\G(\\+|\\-)$", - "name": "keyword.operator.arithmetic.unary.swift" - }, - { - "match": "\\G!$", - "name": "keyword.operator.logical.not.swift" - }, - { - "match": "\\G~$", - "name": "keyword.operator.bitwise.not.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.prefix.swift" - } - ] - } - }, - "comment": "Prefix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G(\\+\\+|\\-\\-)$", - "name": "keyword.operator.increment-or-decrement.swift" - }, - { - "match": "\\G!$", - "name": "keyword.operator.increment-or-decrement.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.postfix.swift" - } - ] - } - }, - "comment": "Postfix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G=$", - "name": "keyword.operator.assignment.swift" - }, - { - "match": "\\G(\\+|\\-|\\*|/|%|<<|>>|&|\\^|\\||&&|\\|\\|)=$", - "name": "keyword.operator.assignment.compound.swift" - }, - { - "match": "\\G(\\+|\\-|\\*|/)$", - "name": "keyword.operator.arithmetic.swift" - }, - { - "match": "\\G&(\\+|\\-|\\*)$", - "name": "keyword.operator.arithmetic.overflow.swift" - }, - { - "match": "\\G%$", - "name": "keyword.operator.arithmetic.remainder.swift" - }, - { - "match": "\\G(==|!=|>|<|>=|<=|~=)$", - "name": "keyword.operator.comparison.swift" - }, - { - "match": "\\G\\?\\?$", - "name": "keyword.operator.coalescing.swift" - }, - { - "match": "\\G(&&|\\|\\|)$", - "name": "keyword.operator.logical.swift" - }, - { - "match": "\\G(&|\\||\\^|<<|>>)$", - "name": "keyword.operator.bitwise.swift" - }, - { - "match": "\\G(===|!==)$", - "name": "keyword.operator.bitwise.swift" - }, - { - "match": "\\G\\?$", - "name": "keyword.operator.ternary.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.infix.swift" - } - ] - } - }, - "comment": "Infix operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t[/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": ".+", - "name": "keyword.operator.custom.prefix.dot.swift" - } - ] - } - }, - "comment": "Dot prefix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?<=^|[\\s(\\[{,;:])\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?![\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": ".+", - "name": "keyword.operator.custom.postfix.dot.swift" - } - ] - } - }, - "comment": "Dot postfix unary operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t(?&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t\t(?=[\\s)\\]},;:]|\\z)\n\t\t\t\t\t\t\t" - }, - { - "captures": { - "0": { - "patterns": [ - { - "match": "\\G\\.\\.[.<]$", - "name": "keyword.operator.range.swift" - }, - { - "match": ".+", - "name": "keyword.operator.custom.infix.dot.swift" - } - ] - } - }, - "comment": "Dot infix operator", - "match": "(?x)\n\t\t\t\t\t\t\t\t\\G\t\t\t\t\t\t\t\t\t\t# Matching from the beginning ensures\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t# that we start with operator-head\n\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t(?!(//|/\\*|\\*/))\n\t\t\t\t\t\t\t\t\t(\n\t\t\t\t\t\t\t\t\t\t\\.\t\t\t\t\t\t\t\t# dot\n\t\t\t\t\t\t\t\t\t | [/=\\-+!*%<>&|^~?]\t\t\t\t# operator-head\n\t\t\t\t\t\t\t\t\t | [\\x{00A1}-\\x{00A7}]\n\t\t\t\t\t\t\t\t\t | [\\x{00A9}\\x{00AB}]\n\t\t\t\t\t\t\t\t\t | [\\x{00AC}\\x{00AE}]\n\t\t\t\t\t\t\t\t\t | [\\x{00B0}-\\x{00B1}\\x{00B6}\\x{00BB}\\x{00BF}\\x{00D7}\\x{00F7}]\n\t\t\t\t\t\t\t\t\t | [\\x{2016}-\\x{2017}\\x{2020}-\\x{2027}]\n\t\t\t\t\t\t\t\t\t | [\\x{2030}-\\x{203E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2041}-\\x{2053}]\n\t\t\t\t\t\t\t\t\t | [\\x{2055}-\\x{205E}]\n\t\t\t\t\t\t\t\t\t | [\\x{2190}-\\x{23FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2500}-\\x{2775}]\n\t\t\t\t\t\t\t\t\t | [\\x{2794}-\\x{2BFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{2E00}-\\x{2E7F}]\n\t\t\t\t\t\t\t\t\t | [\\x{3001}-\\x{3003}]\n\t\t\t\t\t\t\t\t\t | [\\x{3008}-\\x{3030}]\n\t\t\t\t\t\t\t\t \n\t\t\t\t\t\t\t\t\t | [\\x{0300}-\\x{036F}]\t\t\t\t# operator-character\n\t\t\t\t\t\t\t\t\t | [\\x{1DC0}-\\x{1DFF}]\n\t\t\t\t\t\t\t\t\t | [\\x{20D0}-\\x{20FF}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE00}-\\x{FE0F}]\n\t\t\t\t\t\t\t\t\t | [\\x{FE20}-\\x{FE2F}]\n\t\t\t\t\t\t\t\t\t | [\\x{E0100}-\\x{E01EF}]\n\t\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t\t)++\n\t\t\t\t\t\t\t" - } - ] - }, - { - "match": ":", - "name": "keyword.operator.ternary.swift" - } - ] - }, - "root": { - "patterns": [ - { - "include": "#compiler-control" - }, - { - "include": "#declarations" - }, - { - "include": "#expressions" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/swift/test/colorize-fixtures/test.swift b/extensions/swift/test/colorize-fixtures/test.swift deleted file mode 100644 index 189fa46fdc4..00000000000 --- a/extensions/swift/test/colorize-fixtures/test.swift +++ /dev/null @@ -1,13 +0,0 @@ -var teamScore = 0 -var greeting = "Hello!" -var multiLineString = """ - This is a multi-line string! -""" -func hasAnyMatches(list: [Int], condition: (Int) -> Bool) -> Bool { - for item in list { - if condition(item) { - return true - } - } - return false -} diff --git a/extensions/swift/test/colorize-results/test_swift.json b/extensions/swift/test/colorize-results/test_swift.json deleted file mode 100644 index 977818bdec7..00000000000 --- a/extensions/swift/test/colorize-results/test_swift.json +++ /dev/null @@ -1,805 +0,0 @@ -[ - { - "c": "var", - "t": "source.swift keyword.other.declaration-specifier.swift", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " teamScore ", - "t": "source.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.swift keyword.operator.custom.infix.swift", - "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" - } - }, - { - "c": " ", - "t": "source.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.swift constant.numeric.integer.decimal.swift", - "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" - } - }, - { - "c": "var", - "t": "source.swift keyword.other.declaration-specifier.swift", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " greeting ", - "t": "source.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.swift keyword.operator.custom.infix.swift", - "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" - } - }, - { - "c": " ", - "t": "source.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.swift string.quoted.double.single-line.swift punctuation.definition.string.begin.swift", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Hello!", - "t": "source.swift string.quoted.double.single-line.swift", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.swift string.quoted.double.single-line.swift punctuation.definition.string.end.swift", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "var", - "t": "source.swift keyword.other.declaration-specifier.swift", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " multiLineString ", - "t": "source.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.swift keyword.operator.custom.infix.swift", - "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" - } - }, - { - "c": " ", - "t": "source.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"\"\"", - "t": "source.swift string.quoted.double.block.swift punctuation.definition.string.begin.swift", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " This is a multi-line string!", - "t": "source.swift string.quoted.double.block.swift", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"\"\"", - "t": "source.swift string.quoted.double.block.swift punctuation.definition.string.end.swift", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "func", - "t": "source.swift meta.definition.function.swift storage.type.function.swift", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "hasAnyMatches", - "t": "source.swift meta.definition.function.swift entity.name.function.swift", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift punctuation.definition.parameters.begin.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "list", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift variable.parameter.function.swift entity.name.function.swift", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ": ", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift punctuation.section.collection-type.begin.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Int", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift support.type.swift", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": "]", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift punctuation.section.collection-type.end.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ", ", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "condition", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift variable.parameter.function.swift entity.name.function.swift", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ": ", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift punctuation.section.tuple-type.begin.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Int", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift support.type.swift", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift punctuation.section.tuple-type.end.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift keyword.operator.type.function.swift", - "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" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Bool", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift support.type.swift", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.swift meta.definition.function.swift meta.parameter-clause.swift punctuation.definition.parameters.end.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "->", - "t": "source.swift meta.definition.function.swift meta.function-result.swift keyword.operator.function-result.swift", - "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" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.function-result.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Bool", - "t": "source.swift meta.definition.function.swift meta.function-result.swift support.type.swift", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.function-result.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift punctuation.section.function.begin.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift keyword.control.loop.swift", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " item ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "in", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift keyword.control.loop.swift", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " list ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift punctuation.section.scope.begin.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift keyword.control.branch.swift", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "condition", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift meta.function-call.swift support.function.any-method.swift", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift meta.function-call.swift punctuation.definition.arguments.begin.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "item", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift meta.function-call.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift meta.function-call.swift punctuation.definition.arguments.end.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift punctuation.section.scope.begin.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift keyword.control.transfer.swift", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift constant.language.boolean.swift", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift punctuation.section.scope.end.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift punctuation.section.scope.end.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift keyword.control.transfer.swift", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "false", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift constant.language.boolean.swift", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": "}", - "t": "source.swift meta.definition.function.swift meta.definition.function.body.swift punctuation.section.function.end.swift", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/typescript-basics/.vscodeignore b/extensions/typescript-basics/.vscodeignore deleted file mode 100644 index 0a0a50bc3e0..00000000000 --- a/extensions/typescript-basics/.vscodeignore +++ /dev/null @@ -1,6 +0,0 @@ -build/** -src/** -test/** -tsconfig.json -cgmanifest.json -syntaxes/Readme.md diff --git a/extensions/typescript-basics/build/update-grammars.js b/extensions/typescript-basics/build/update-grammars.js deleted file mode 100644 index b58a2f57d2e..00000000000 --- a/extensions/typescript-basics/build/update-grammars.js +++ /dev/null @@ -1,84 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ -// @ts-check -'use strict'; - -var updateGrammar = require('../../../build/npm/update-grammar'); - -function removeDom(grammar) { - grammar.repository['support-objects'].patterns = grammar.repository['support-objects'].patterns.filter(pattern => { - if (pattern.match && pattern.match.match(/\b(HTMLElement|ATTRIBUTE_NODE|stopImmediatePropagation)\b/g)) { - return false; - } - return true; - }); - return grammar; -} - -function removeNodeTypes(grammar) { - grammar.repository['support-objects'].patterns = grammar.repository['support-objects'].patterns.filter(pattern => { - if (pattern.name) { - if (pattern.name.startsWith('support.variable.object.node') || pattern.name.startsWith('support.class.node.')) { - return false; - } - } - if (pattern.captures) { - if (Object.values(pattern.captures).some(capture => - capture.name && (capture.name.startsWith('support.variable.object.process') - || capture.name.startsWith('support.class.console')) - )) { - return false; - } - } - return true; - }); - return grammar; -} - -function patchJsdoctype(grammar) { - grammar.repository['jsdoctype'].patterns = grammar.repository['jsdoctype'].patterns.filter(pattern => { - if (pattern.name && pattern.name.indexOf('illegal') >= -1) { - return false; - } - return true; - }); - return grammar; -} - -function patchGrammar(grammar) { - return removeNodeTypes(removeDom(patchJsdoctype(grammar))); -} - -function adaptToJavaScript(grammar, replacementScope) { - grammar.name = 'JavaScript (with React support)'; - grammar.fileTypes = ['.js', '.jsx', '.es6', '.mjs', '.cjs']; - grammar.scopeName = `source${replacementScope}`; - - var fixScopeNames = function (rule) { - if (typeof rule.name === 'string') { - rule.name = rule.name.replace(/\.tsx/g, replacementScope); - } - if (typeof rule.contentName === 'string') { - rule.contentName = rule.contentName.replace(/\.tsx/g, replacementScope); - } - for (var property in rule) { - var value = rule[property]; - if (typeof value === 'object') { - fixScopeNames(value); - } - } - }; - - var repository = grammar.repository; - for (var key in repository) { - fixScopeNames(repository[key]); - } -} - -var tsGrammarRepo = 'microsoft/TypeScript-TmLanguage'; -updateGrammar.update(tsGrammarRepo, 'TypeScript.tmLanguage', './syntaxes/TypeScript.tmLanguage.json', grammar => patchGrammar(grammar)); -updateGrammar.update(tsGrammarRepo, 'TypeScriptReact.tmLanguage', './syntaxes/TypeScriptReact.tmLanguage.json', grammar => patchGrammar(grammar)); -updateGrammar.update(tsGrammarRepo, 'TypeScriptReact.tmLanguage', '../javascript/syntaxes/JavaScript.tmLanguage.json', grammar => adaptToJavaScript(patchGrammar(grammar), '.js')); -updateGrammar.update(tsGrammarRepo, 'TypeScriptReact.tmLanguage', '../javascript/syntaxes/JavaScriptReact.tmLanguage.json', grammar => adaptToJavaScript(patchGrammar(grammar), '.js.jsx')); diff --git a/extensions/typescript-basics/cgmanifest.json b/extensions/typescript-basics/cgmanifest.json deleted file mode 100644 index 11992b0e4fa..00000000000 --- a/extensions/typescript-basics/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "TypeScript-TmLanguage", - "repositoryUrl": "https://github.com/microsoft/TypeScript-TmLanguage", - "commitHash": "398985941eb36cd270054a6e668d03fb9ef92e77" - } - }, - "license": "MIT", - "description": "The files syntaxes/TypeScript.tmLanguage.json and syntaxes/TypeScriptReact.tmLanguage.json were derived from TypeScript.tmLanguage and TypeScriptReact.tmLanguage in https://github.com/microsoft/TypeScript-TmLanguage.", - "version": "1.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/typescript-basics/language-configuration.json b/extensions/typescript-basics/language-configuration.json deleted file mode 100644 index 213cc051560..00000000000 --- a/extensions/typescript-basics/language-configuration.json +++ /dev/null @@ -1,36 +0,0 @@ -{ - "comments": { - "lineComment": "//", - "blockComment": [ "/*", "*/" ] - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}" }, - { "open": "[", "close": "]" }, - { "open": "(", "close": ")" }, - { "open": "'", "close": "'", "notIn": ["string", "comment"] }, - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "`", "close": "`", "notIn": ["string", "comment"] }, - { "open": "/**", "close": " */", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["'", "'"], - ["\"", "\""], - ["`", "`"], - ["<", ">"] - ], - "autoCloseBefore": ";:.,=}])>` \n\t", - "folding": { - "markers": { - "start": "^\\s*//\\s*#?region\\b", - "end": "^\\s*//\\s*#?endregion\\b" - } - } -} diff --git a/extensions/typescript-basics/package.json b/extensions/typescript-basics/package.json deleted file mode 100644 index 8ef6a585e59..00000000000 --- a/extensions/typescript-basics/package.json +++ /dev/null @@ -1,171 +0,0 @@ -{ - "name": "typescript", - "description": "%description%", - "displayName": "%displayName%", - "version": "1.0.0", - "author": "vscode", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ./build/update-grammars.js" - }, - "contributes": { - "languages": [ - { - "id": "typescript", - "aliases": [ - "TypeScript", - "ts", - "typescript" - ], - "extensions": [ - ".ts" - ], - "configuration": "./language-configuration.json" - }, - { - "id": "typescriptreact", - "aliases": [ - "TypeScript React", - "tsx" - ], - "extensions": [ - ".tsx" - ], - "configuration": "./language-configuration.json" - }, - { - "id": "jsonc", - "filenames": [ - "tsconfig.json", - "jsconfig.json" - ], - "filenamePatterns": [ - "tsconfig.*.json", - "jsconfig.*.json", - "tsconfig-*.json", - "jsconfig-*.json" - ] - } - ], - "grammars": [ - { - "language": "typescript", - "scopeName": "source.ts", - "path": "./syntaxes/TypeScript.tmLanguage.json", - "tokenTypes": { - "entity.name.type.instance.jsdoc": "other", - "entity.name.function.tagged-template": "other", - "meta.import string.quoted": "other", - "variable.other.jsdoc": "other" - } - }, - { - "language": "typescriptreact", - "scopeName": "source.tsx", - "path": "./syntaxes/TypeScriptReact.tmLanguage.json", - "embeddedLanguages": { - "meta.tag.tsx": "jsx-tags", - "meta.tag.without-attributes.tsx": "jsx-tags", - "meta.tag.attributes.tsx": "typescriptreact", - "meta.embedded.expression.tsx": "typescriptreact" - }, - "tokenTypes": { - "entity.name.type.instance.jsdoc": "other", - "entity.name.function.tagged-template": "other", - "meta.import string.quoted": "other", - "variable.other.jsdoc": "other" - } - }, - { - "scopeName": "documentation.injection.ts", - "path": "./syntaxes/jsdoc.ts.injection.tmLanguage.json", - "injectTo": [ - "source.ts", - "source.tsx" - ] - }, - { - "scopeName": "documentation.injection.js.jsx", - "path": "./syntaxes/jsdoc.js.injection.tmLanguage.json", - "injectTo": [ - "source.js", - "source.js.jsx" - ] - } - ], - "semanticTokenScopes": [ - { - "language": "typescript", - "scopes": { - "property": [ - "variable.other.property.ts" - ], - "property.readonly": [ - "variable.other.constant.property.ts" - ], - "variable": [ - "variable.other.readwrite.ts" - ], - "variable.readonly": [ - "variable.other.constant.object.ts" - ], - "function": [ - "entity.name.function.ts" - ], - "namespace": [ - "entity.name.type.module.ts" - ], - "variable.defaultLibrary": [ - "support.variable.ts" - ], - "function.defaultLibrary": [ - "support.function.ts" - ] - } - }, - { - "language": "typescriptreact", - "scopes": { - "property": [ - "variable.other.property.tsx" - ], - "property.readonly": [ - "variable.other.constant.property.tsx" - ], - "variable": [ - "variable.other.readwrite.tsx" - ], - "variable.readonly": [ - "variable.other.constant.object.tsx" - ], - "function": [ - "entity.name.function.tsx" - ], - "namespace": [ - "entity.name.type.module.tsx" - ], - "variable.defaultLibrary": [ - "support.variable.tsx" - ], - "function.defaultLibrary": [ - "support.function.tsx" - ] - } - } - ], - "snippets": [ - { - "language": "typescript", - "path": "./snippets/typescript.code-snippets" - }, - { - "language": "typescriptreact", - "path": "./snippets/typescript.code-snippets" - } - ] - } -} diff --git a/extensions/typescript-basics/package.nls.json b/extensions/typescript-basics/package.nls.json deleted file mode 100644 index 744f91f8a47..00000000000 --- a/extensions/typescript-basics/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "TypeScript Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in TypeScript files." -} \ No newline at end of file diff --git a/extensions/typescript-basics/snippets/typescript.code-snippets b/extensions/typescript-basics/snippets/typescript.code-snippets deleted file mode 100644 index 8eeb13e2e2d..00000000000 --- a/extensions/typescript-basics/snippets/typescript.code-snippets +++ /dev/null @@ -1,309 +0,0 @@ -{ - "Constructor": { - "prefix": "ctor", - "body": [ - "/**", - " *", - " */", - "constructor() {", - "\tsuper();", - "\t$0", - "}" - ], - "description": "Constructor" - }, - "Class Definition": { - "prefix": "class", - "body": [ - "class ${1:name} {", - "\tconstructor(${2:parameters}) {", - "\t\t$0", - "\t}", - "}" - ], - "description": "Class Definition" - }, - "Public Method Definition": { - "prefix": "public method", - "body": [ - "/**", - " * ${1:name}", - " */", - "public ${1:name}() {", - "\t$0", - "}" - ], - "description": "Public Method Definition" - }, - "Private Method Definition": { - "prefix": "private method", - "body": [ - "private ${1:name}() {", - "\t$0", - "}" - ], - "description": "Private Method Definition" - }, - "Import external module.": { - "prefix": "import statement", - "body": [ - "import { $0 } from \"${1:module}\";" - ], - "description": "Import external module." - }, - "Property getter": { - "prefix": "get", - "body": [ - "", - "public get ${1:value}() : ${2:string} {", - "\t${3:return $0}", - "}", - "" - ], - "description": "Property getter" - }, - "Log to the console": { - "prefix": "log", - "body": [ - "console.log($1);", - "$0" - ], - "description": "Log to the console" - }, - "Log warning to console": { - "prefix": "warn", - "body": [ - "console.warn($1);", - "$0" - ], - "description": "Log warning to the console" - }, - "Log error to console": { - "prefix": "error", - "body": [ - "console.error($1);", - "$0" - ], - "description": "Log error to the console" - }, - "Define a full property": { - "prefix": "prop", - "body": [ - "", - "private _${1:value} : ${2:string};", - "public get ${1:value}() : ${2:string} {", - "\treturn this._${1:value};", - "}", - "public set ${1:value}(v : ${2:string}) {", - "\tthis._${1:value} = v;", - "}", - "" - ], - "description": "Define a full property" - }, - "Triple-slash reference": { - "prefix": "ref", - "body": [ - "/// ", - "$0" - ], - "description": "Triple-slash reference" - }, - "Property setter": { - "prefix": "set", - "body": [ - "", - "public set ${1:value}(v : ${2:string}) {", - "\tthis.$3 = v;", - "}", - "" - ], - "description": "Property setter" - }, - "Throw Exception": { - "prefix": "throw", - "body": [ - "throw new Error(\"$1\");", - "$0" - ], - "description": "Throw Exception" - }, - "For Loop": { - "prefix": "for", - "body": [ - "for (let ${1:index} = 0; ${1:index} < ${2:array}.length; ${1:index}++) {", - "\tconst ${3:element} = ${2:array}[${1:index}];", - "\t$0", - "}" - ], - "description": "For Loop" - }, - "For-Each Loop using =>": { - "prefix": "foreach =>", - "body": [ - "${1:array}.forEach(${2:element} => {", - "\t$0", - "});" - ], - "description": "For-Each Loop using =>" - }, - "For-In Loop": { - "prefix": "forin", - "body": [ - "for (const ${1:key} in ${2:object}) {", - "\tif (Object.prototype.hasOwnProperty.call(${2:object}, ${1:key})) {", - "\t\tconst ${3:element} = ${2:object}[${1:key}];", - "\t\t$0", - "\t}", - "}" - ], - "description": "For-In Loop" - }, - "For-Of Loop": { - "prefix": "forof", - "body": [ - "for (const ${1:iterator} of ${2:object}) {", - "\t$0", - "}" - ], - "description": "For-Of Loop" - }, - "For-Await-Of Loop": { - "prefix": "forawaitof", - "body": [ - "for await (const ${1:iterator} of ${2:object}) {", - "\t$0", - "}" - ], - "description": "For-Await-Of Loop" - }, - "Function Statement": { - "prefix": "function", - "body": [ - "function ${1:name}(${2:params}:${3:type}) {", - "\t$0", - "}" - ], - "description": "Function Statement" - }, - "If Statement": { - "prefix": "if", - "body": [ - "if (${1:condition}) {", - "\t$0", - "}" - ], - "description": "If Statement" - }, - "If-Else Statement": { - "prefix": "ifelse", - "body": [ - "if (${1:condition}) {", - "\t$0", - "} else {", - "\t", - "}" - ], - "description": "If-Else Statement" - }, - "New Statement": { - "prefix": "new", - "body": [ - "const ${1:name} = new ${2:type}(${3:arguments});$0" - ], - "description": "New Statement" - }, - "Switch Statement": { - "prefix": "switch", - "body": [ - "switch (${1:key}) {", - "\tcase ${2:value}:", - "\t\t$0", - "\t\tbreak;", - "", - "\tdefault:", - "\t\tbreak;", - "}" - ], - "description": "Switch Statement" - }, - "While Statement": { - "prefix": "while", - "body": [ - "while (${1:condition}) {", - "\t$0", - "}" - ], - "description": "While Statement" - }, - "Do-While Statement": { - "prefix": "dowhile", - "body": [ - "do {", - "\t$0", - "} while (${1:condition});" - ], - "description": "Do-While Statement" - }, - "Try-Catch Statement": { - "prefix": "trycatch", - "body": [ - "try {", - "\t$0", - "} catch (${1:error}) {", - "\t", - "}" - ], - "description": "Try-Catch Statement" - }, - "Set Timeout Function": { - "prefix": "settimeout", - "body": [ - "setTimeout(() => {", - "\t$0", - "}, ${1:timeout});" - ], - "description": "Set Timeout Function" - }, - "Region Start": { - "prefix": "#region", - "body": [ - "//#region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#endregion", - "body": [ - "//#endregion" - ], - "description": "Folding Region End" - }, - "new Promise": { - "prefix": "newpromise", - "body": [ - "new Promise<$1:type>((resolve, reject) => {", - "\t$1", - "})" - ], - "description": "Create a new Promise" - }, - "Async Function Statement": { - "prefix": "async function", - "body": [ - "async function ${1:name}(${2:params}:${3:type}) {", - "\t$0", - "}" - ], - "description": "Async Function Statement" - }, - "Async Function Expression": { - "prefix": "async arrow function", - "body": [ - "async (${1:params}:${2:type}) => {", - "\t$0", - "}" - ], - "description": "Async Function Expression" - } -} diff --git a/extensions/typescript-basics/syntaxes/Readme.md b/extensions/typescript-basics/syntaxes/Readme.md deleted file mode 100644 index 2f9c2b95ee2..00000000000 --- a/extensions/typescript-basics/syntaxes/Readme.md +++ /dev/null @@ -1,16 +0,0 @@ -The file `TypeScript.tmLanguage.json` and `TypeScriptReact.tmLanguage.json` are derived from [TypeScript.tmLanguage](https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScript.tmLanguage) and [TypeScriptReact.tmLanguage](https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage). - -To update to the latest version: -- `cd extensions/typescript` and run `npm run update-grammars` -- don't forget to run the integration tests at `./scripts/test-integration.sh` - -Migration notes and todos: - -- differentiate variable and function declarations from references - - I suggest we use a new scope segment 'function-call' to signal a function reference, and 'definition' to the declaration. An alternative is to use 'support.function' everywhere. - - I suggest we use a new scope segment 'definition' to the variable declarations. Haven't yet found a scope for references that other grammars use. - -- rename scope to return.type to return-type, which is already used in other grammars -- rename entity.name.class to entity.name.type.class which is used in all other grammars I've seen - -- do we really want to have the list of all the 'library' types (Math, Dom...). It adds a lot of size to the grammar, lots of special rules and is not really correct as it depends on the JavaScript runtime which types are present. diff --git a/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json b/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json deleted file mode 100644 index 54748a29388..00000000000 --- a/extensions/typescript-basics/syntaxes/TypeScript.tmLanguage.json +++ /dev/null @@ -1,5603 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScript.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/398985941eb36cd270054a6e668d03fb9ef92e77", - "name": "TypeScript", - "scopeName": "source.ts", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.ts", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.ts" - } - } - }, - "statements": { - "patterns": [ - { - "include": "#declaration" - }, - { - "include": "#control-statement" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#label" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "declaration": { - "patterns": [ - { - "include": "#decorator" - }, - { - "include": "#var-expr" - }, - { - "include": "#function-declaration" - }, - { - "include": "#class-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#namespace-declaration" - }, - { - "include": "#type-alias-declaration" - }, - { - "include": "#import-equals-declaration" - }, - { - "include": "#import-declaration" - }, - { - "include": "#export-declaration" - }, - { - "name": "storage.modifier.ts", - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ts entity.name.function.ts" - }, - "2": { - "name": "keyword.operator.definiteassignment.ts" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "entity.name.function.ts variable.language.this.ts" - }, - "4": { - "name": "entity.name.function.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "meta.definition.property.ts entity.name.function.ts" - }, - "2": { - "name": "keyword.operator.optional.ts" - }, - "3": { - "name": "keyword.operator.definiteassignment.ts" - } - } - }, - { - "name": "meta.definition.property.ts variable.object.property.ts", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.ts", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.ts", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.ts" - } - }, - "end": "(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.async.ts" - }, - "4": { - "name": "keyword.operator.new.ts" - }, - "5": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.ts", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "storage.modifier.async.ts" - }, - "4": { - "name": "storage.type.property.ts" - }, - "5": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.ts", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "storage.type.property.ts" - }, - "3": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "storage.type.property.ts" - }, - "3": { - "name": "keyword.generator.asterisk.ts" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?)", - "captures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "variable.parameter.ts" - } - } - }, - { - "name": "meta.arrow.ts", - "begin": "(?x) (?:\n (? is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.ts", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.ts" - } - }, - "end": "((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.ts", - "begin": "(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.ts", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.ts" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.ts meta.object-literal.key.ts", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.ts meta.object-literal.key.ts", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.ts meta.object-literal.key.ts", - "begin": "(?x)(?=(\\b(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.ts" - }, - "1": { - "name": "entity.name.function.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.ts" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.ts" - } - } - }, - { - "name": "meta.object.member.ts", - "match": "(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - }, - "2": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?<=\\>)", - "patterns": [ - { - "include": "#type-parameters" - } - ] - }, - { - "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.ts" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.ts" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.ts", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.ts", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.ts", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.ts punctuation.accessor.optional.ts", - "match": "\\?\\." - }, - { - "name": "meta.function-call.ts keyword.operator.definiteassignment.ts", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.ts", - "match": "(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.ts" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - "paren-expression-possibly-arrow-with-typeparameters": { - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.ts" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "entity.name.function.ts variable.language.this.ts" - }, - "4": { - "name": "entity.name.function.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "match": "(?x)(?:(?)", - "captures": { - "1": { - "name": "meta.brace.angle.ts" - }, - "2": { - "name": "storage.modifier.ts" - }, - "3": { - "name": "meta.brace.angle.ts" - } - } - }, - { - "name": "cast.expr.ts", - "begin": "(?:(?*?\\&\\|\\^]|[^_$[:alnum:]](?:\\+\\+|\\-\\-)|[^\\+]\\+|[^\\-]\\-))\\s*(<)(?!)", - "endCaptures": { - "1": { - "name": "meta.brace.angle.ts" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "cast.expr.ts", - "begin": "(?:(?<=^))\\s*(<)(?=[_$[:alpha:]][_$[:alnum:]]*\\s*>)", - "beginCaptures": { - "1": { - "name": "meta.brace.angle.ts" - } - }, - "end": "(\\>)", - "endCaptures": { - "1": { - "name": "meta.brace.angle.ts" - } - }, - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "expression-operators": { - "patterns": [ - { - "name": "keyword.control.flow.ts", - "match": "(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.ts", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.ts", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.ts", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.logical.ts" - }, - "2": { - "name": "keyword.operator.arithmetic.ts" - } - } - }, - { - "name": "keyword.operator.logical.ts", - "match": "\\!|&&|\\|\\||\\?\\?" - }, - { - "name": "keyword.operator.bitwise.ts", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.ts", - "match": "--" - }, - { - "name": "keyword.operator.increment.ts", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.ts", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(/)(?![/*]))", - "end": "(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)", - "endCaptures": { - "1": { - "name": "keyword.operator.arithmetic.ts" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.arithmetic.ts" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?]|$|;|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#numeric-literal" - }, - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#undefined-literal" - }, - { - "include": "#numericConstant-literal" - }, - { - "include": "#array-literal" - }, - { - "include": "#this-literal" - }, - { - "include": "#super-literal" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.ts", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.ts" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.ts" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.ts", - "match": "\\b(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "support.variable.property.ts" - }, - "4": { - "name": "support.constant.ts" - } - } - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "entity.name.function.ts" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "variable.other.constant.property.ts" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "variable.other.property.ts" - } - } - }, - { - "name": "variable.other.constant.ts", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - }, - "3": { - "name": "variable.other.constant.object.property.ts" - }, - "4": { - "name": "variable.other.object.property.ts" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.ts" - }, - "2": { - "name": "variable.other.object.ts" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.ts", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.ts", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?])|(?=^\\s*$)|((?<=\\S)(?=\\s*$))|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.ts", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.ts", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.ts" - } - }, - "end": "(?|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "possibly-arrow-return-type": { - "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", - "beginCaptures": { - "1": { - "name": "meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.ts meta.return.type.arrow.ts", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "arrow-return-type-body": { - "patterns": [ - { - "begin": "(?<=[:])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.ts", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.ts" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.ts", - "match": "(?)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.ts", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.ts" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?)\n ))\n ))\n)) |\n(:\\s*(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?[\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", - "captures": { - "1": { - "name": "storage.modifier.ts" - }, - "2": { - "name": "keyword.operator.rest.ts" - }, - "3": { - "name": "entity.name.function.ts variable.language.this.ts" - }, - "4": { - "name": "entity.name.function.ts" - }, - "5": { - "name": "keyword.operator.optional.ts" - } - } - }, - { - "match": "(?x)(?:(?)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.ts", - "begin": "(?)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.ts", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.ts" - } - }, - "end": "(?)(?:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.ts", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.ts" - } - }, - "end": "(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - } - ] - }, - "type-function-return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<==>)(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-operators": { - "patterns": [ - { - "include": "#typeof-operator" - }, - { - "begin": "([&|])(?=\\s*\\{)", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.ts" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "begin": "[&|]", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.ts" - } - }, - "end": "(?=\\S)" - }, - { - "name": "keyword.operator.expression.keyof.ts", - "match": "(?)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.ts punctuation.definition.typeparameters.end.ts" - } - }, - "contentName": "meta.type.parameters.ts", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.ts" - }, - "2": { - "name": "meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.ts punctuation.definition.typeparameters.end.ts" - } - }, - "contentName": "meta.type.parameters.ts", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.ts" - }, - "2": { - "name": "punctuation.accessor.ts" - }, - "3": { - "name": "punctuation.accessor.optional.ts" - } - } - }, - { - "name": "entity.name.type.ts", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.ts", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.ts", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.ts" - }, - "2": { - "name": "punctuation.accessor.optional.ts" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.ts", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "invalid.illegal.newline.ts" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.ts", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "invalid.illegal.newline.ts" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.ts", - "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.ts", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.ts" - }, - "2": { - "name": "punctuation.definition.string.template.begin.ts" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.ts" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "name": "string.template.ts", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.ts", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "name": "string.template.ts", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.ts" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.ts", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.ts" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.ts" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.ts", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.ts" - }, - "2": { - "name": "punctuation.definition.string.template.begin.ts" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.ts" - } - }, - "patterns": [ - { - "include": "#template-type-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-type-substitution-element": { - "name": "meta.template.expression.ts", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.ts" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.ts" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.ts" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.ts", - "begin": "(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.ts" - } - }, - "end": "(/)([gimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.ts" - }, - "2": { - "name": "keyword.other.ts" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.ts", - "begin": "((?", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.regexp", - "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - }, - "1": { - "name": "punctuation.definition.group.no-capture.regexp" - }, - "2": { - "name": "variable.other.regexp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.regexp", - "begin": "(\\[)(\\^)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.regexp", - "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", - "captures": { - "1": { - "name": "constant.character.numeric.regexp" - }, - "2": { - "name": "constant.character.control.regexp" - }, - "3": { - "name": "constant.character.escape.backslash.regexp" - }, - "4": { - "name": "constant.character.numeric.regexp" - }, - "5": { - "name": "constant.character.control.regexp" - }, - "6": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.ts", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.ts" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.ts" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.ts", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.ts" - }, - "2": { - "name": "storage.type.internaldeclaration.ts" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.ts" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.ts" - } - } - }, - { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ts" - }, - "2": { - "name": "comment.line.double-slash.ts" - }, - "3": { - "name": "punctuation.definition.comment.ts" - }, - "4": { - "name": "storage.type.internaldeclaration.ts" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.ts" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.ts" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.ts" - }, - "2": { - "name": "comment.line.double-slash.ts" - }, - "3": { - "name": "punctuation.definition.comment.ts" - }, - "4": { - "name": "storage.type.internaldeclaration.ts" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.ts" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.ts" - }, - "directives": { - "name": "comment.line.triple-slash.directive.ts", - "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.ts" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "meta.tag.ts", - "begin": "(<)(reference|amd-dependency|amd-module)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.directive.ts" - }, - "2": { - "name": "entity.name.tag.directive.ts" - } - }, - "end": "/>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.directive.ts" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.ts", - "match": "path|types|no-default-lib|lib|name" - }, - { - "name": "keyword.operator.assignment.ts", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # ", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "keyword.operator.control.jsdoc" - }, - "5": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "begin": "\\G(<)caption(>)", - "beginCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - }, - "end": "()|(?=\\*/)", - "endCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.ts" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "((@)typedef)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" - }, - "2": { - "name": "keyword.operator.assignment.jsdoc" - }, - "3": { - "name": "source.embedded.ts" - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" - }, - "5": { - "name": "invalid.illegal.syntax.jsdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - }, - "4": { - "name": "punctuation.definition.string.begin.jsdoc" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.jsdoc", - "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - }, - "2": { - "name": "storage.type.class.jsdoc" - }, - "3": { - "name": "punctuation.definition.inline.tag.jsdoc" - } - }, - "end": "}|(?=\\*/)", - "endCaptures": { - "0": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - } - }, - "end": "((}))\\s*|(?=\\*/)", - "endCaptures": { - "1": { - "name": "entity.name.type.instance.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json b/extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json deleted file mode 100644 index 5f673691d42..00000000000 --- a/extensions/typescript-basics/syntaxes/TypeScriptReact.tmLanguage.json +++ /dev/null @@ -1,5856 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/microsoft/TypeScript-TmLanguage/blob/master/TypeScriptReact.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/microsoft/TypeScript-TmLanguage/commit/398985941eb36cd270054a6e668d03fb9ef92e77", - "name": "TypeScriptReact", - "scopeName": "source.tsx", - "patterns": [ - { - "include": "#directives" - }, - { - "include": "#statements" - }, - { - "include": "#shebang" - } - ], - "repository": { - "shebang": { - "name": "comment.line.shebang.tsx", - "match": "\\A(#!).*(?=$)", - "captures": { - "1": { - "name": "punctuation.definition.comment.tsx" - } - } - }, - "statements": { - "patterns": [ - { - "include": "#declaration" - }, - { - "include": "#control-statement" - }, - { - "include": "#after-operator-block-as-object-literal" - }, - { - "include": "#decl-block" - }, - { - "include": "#label" - }, - { - "include": "#expression" - }, - { - "include": "#punctuation-semicolon" - }, - { - "include": "#string" - }, - { - "include": "#comment" - } - ] - }, - "declaration": { - "patterns": [ - { - "include": "#decorator" - }, - { - "include": "#var-expr" - }, - { - "include": "#function-declaration" - }, - { - "include": "#class-declaration" - }, - { - "include": "#interface-declaration" - }, - { - "include": "#enum-declaration" - }, - { - "include": "#namespace-declaration" - }, - { - "include": "#type-alias-declaration" - }, - { - "include": "#import-equals-declaration" - }, - { - "include": "#import-declaration" - }, - { - "include": "#export-declaration" - }, - { - "name": "storage.modifier.tsx", - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.tsx entity.name.function.tsx" - }, - "2": { - "name": "keyword.operator.definiteassignment.tsx" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "beginCaptures": { - "1": { - "name": "meta.definition.variable.tsx variable.other.constant.tsx entity.name.function.tsx" - } - }, - "end": "(?=$|^|[;,=}]|((?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "keyword.operator.rest.tsx" - }, - "3": { - "name": "entity.name.function.tsx variable.language.this.tsx" - }, - "4": { - "name": "entity.name.function.tsx" - }, - "5": { - "name": "keyword.operator.optional.tsx" - } - } - }, - { - "match": "(?x)(?:(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "meta.definition.property.tsx entity.name.function.tsx" - }, - "2": { - "name": "keyword.operator.optional.tsx" - }, - "3": { - "name": "keyword.operator.definiteassignment.tsx" - } - } - }, - { - "name": "meta.definition.property.tsx variable.object.property.tsx", - "match": "\\#?[_$[:alpha:]][_$[:alnum:]]*" - }, - { - "name": "keyword.operator.optional.tsx", - "match": "\\?" - }, - { - "name": "keyword.operator.definiteassignment.tsx", - "match": "\\!" - } - ] - }, - "variable-initializer": { - "patterns": [ - { - "begin": "(?\\s*$)", - "beginCaptures": { - "1": { - "name": "keyword.operator.assignment.tsx" - } - }, - "end": "(?=$|^|[,);}\\]]|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.async.tsx" - }, - "4": { - "name": "keyword.operator.new.tsx" - }, - "5": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - }, - { - "name": "meta.method.declaration.tsx", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "storage.modifier.tsx" - }, - "3": { - "name": "storage.modifier.async.tsx" - }, - "4": { - "name": "storage.type.property.tsx" - }, - "5": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\}|;|,|$)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - } - ] - } - ] - }, - "object-literal-method-declaration": { - "name": "meta.method.declaration.tsx", - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "storage.type.property.tsx" - }, - "3": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\}|;|,)|(?<=\\})", - "patterns": [ - { - "include": "#method-declaration-name" - }, - { - "include": "#function-body" - }, - { - "begin": "(?x)(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?[\\(])", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "storage.type.property.tsx" - }, - "3": { - "name": "keyword.generator.asterisk.tsx" - } - }, - "end": "(?=\\(|\\<)", - "patterns": [ - { - "include": "#method-declaration-name" - } - ] - } - ] - }, - "method-declaration-name": { - "begin": "(?x)(?=((\\b(?)", - "captures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "variable.parameter.tsx" - } - } - }, - { - "name": "meta.arrow.tsx", - "begin": "(?x) (?:\n (? is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n )\n)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - }, - { - "include": "#function-parameters" - }, - { - "include": "#arrow-return-type" - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - { - "name": "meta.arrow.tsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.tsx" - } - }, - "end": "((?<=\\}|\\S)(?)|((?!\\{)(?=\\S)))(?!\\/[\\/\\*])", - "patterns": [ - { - "include": "#single-line-comment-consuming-line-ending" - }, - { - "include": "#decl-block" - }, - { - "include": "#expression" - } - ] - } - ] - }, - "indexer-declaration": { - "name": "meta.indexer.declaration.tsx", - "begin": "(?:(?]|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^yield|[^\\._$[:alnum:]]yield|^throw|[^\\._$[:alnum:]]throw|^in|[^\\._$[:alnum:]]in|^of|[^\\._$[:alnum:]]of|^typeof|[^\\._$[:alnum:]]typeof|&&|\\|\\||\\*)\\s*(\\{)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-literal": { - "name": "meta.objectliteral.tsx", - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.block.tsx" - } - }, - "patterns": [ - { - "include": "#object-member" - } - ] - }, - "object-member": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#object-literal-method-declaration" - }, - { - "name": "meta.object.member.tsx meta.object-literal.key.tsx", - "begin": "(?=\\[)", - "end": "(?=:)|((?<=[\\]])(?=\\s*[\\(\\<]))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#array-literal" - } - ] - }, - { - "name": "meta.object.member.tsx meta.object-literal.key.tsx", - "begin": "(?=[\\'\\\"\\`])", - "end": "(?=:)|((?<=[\\'\\\"\\`])(?=((\\s*[\\(\\<,}])|(\\s+(as)\\s+))))", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#string" - } - ] - }, - { - "name": "meta.object.member.tsx meta.object-literal.key.tsx", - "begin": "(?x)(?=(\\b(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "0": { - "name": "meta.object-literal.key.tsx" - }, - "1": { - "name": "entity.name.function.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "match": "(?:[_$[:alpha:]][_$[:alnum:]]*)\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*:)", - "captures": { - "0": { - "name": "meta.object-literal.key.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "begin": "\\.\\.\\.", - "beginCaptures": { - "0": { - "name": "keyword.operator.spread.tsx" - } - }, - "end": "(?=,|\\})", - "patterns": [ - { - "include": "#expression" - } - ] - }, - { - "name": "meta.object.member.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?=,|\\}|$|\\/\\/|\\/\\*)", - "captures": { - "1": { - "name": "variable.other.readwrite.tsx" - } - } - }, - { - "name": "meta.object.member.tsx", - "match": "(?]|\\|\\||\\&\\&|\\!\\=\\=|$|^|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - }, - "2": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "begin": "(?<=:)\\s*(async)?\\s*(?=\\<\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\>)", - "patterns": [ - { - "include": "#type-parameters" - } - ] - }, - { - "begin": "(?<=\\>)\\s*(\\()(?=\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - }, - { - "include": "#expression" - } - ] - }, - { - "include": "#punctuation-comma" - } - ] - }, - "ternary-expression": { - "begin": "(?!\\?\\.\\s*[^[:digit:]])(\\?)(?!\\?)", - "beginCaptures": { - "1": { - "name": "keyword.operator.ternary.tsx" - } - }, - "end": "\\s*(:)", - "endCaptures": { - "1": { - "name": "keyword.operator.ternary.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ] - }, - "function-call": { - "patterns": [ - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "end": "(?<=\\))(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "name": "meta.function-call.tsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=\\s*(?:(\\?\\.\\s*)|(\\!))?((<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?\\())", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - }, - { - "include": "#paren-expression" - } - ] - }, - { - "begin": "(?=(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "end": "(?<=\\>)(?!(((([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))|(?<=[\\)]))(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "name": "meta.function-call.tsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*)(\\s*\\??\\.\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*))*)|(\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*[\\{\\[\\(]\\s*$))", - "patterns": [ - { - "include": "#function-call-target" - } - ] - }, - { - "include": "#comment" - }, - { - "include": "#function-call-optionals" - }, - { - "include": "#type-arguments" - } - ] - } - ] - }, - "function-call-target": { - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tsx", - "match": "(\\#?[_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - "function-call-optionals": { - "patterns": [ - { - "name": "meta.function-call.tsx punctuation.accessor.optional.tsx", - "match": "\\?\\." - }, - { - "name": "meta.function-call.tsx keyword.operator.definiteassignment.tsx", - "match": "\\!" - } - ] - }, - "support-function-call-identifiers": { - "patterns": [ - { - "include": "#literal" - }, - { - "include": "#support-objects" - }, - { - "include": "#object-identifiers" - }, - { - "include": "#punctuation-accessor" - }, - { - "name": "keyword.operator.expression.import.tsx", - "match": "(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?]|\\|\\||\\&\\&|\\!\\=\\=|$|(([\\&\\~\\^\\|]\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s+instanceof(?![_$[:alnum:]])(?:(?=\\.\\.\\.)|(?!\\.)))|((?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\(\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "begin": "(?<=[(=,]|=>|^return|[^\\._$[:alnum:]]return)\\s*(async)?(?=\\s*((((<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*))?\\()|(<))\\s*$)", - "beginCaptures": { - "1": { - "name": "storage.modifier.async.tsx" - } - }, - "end": "(?<=\\))", - "patterns": [ - { - "include": "#paren-expression-possibly-arrow-with-typeparameters" - } - ] - }, - { - "include": "#possibly-arrow-return-type" - } - ] - }, - "paren-expression-possibly-arrow-with-typeparameters": { - "patterns": [ - { - "include": "#type-parameters" - }, - { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "meta.brace.round.tsx" - } - }, - "patterns": [ - { - "include": "#expression-inside-possibly-arrow-parens" - } - ] - } - ] - }, - "expression-inside-possibly-arrow-parens": { - "patterns": [ - { - "include": "#expressionWithoutIdentifiers" - }, - { - "include": "#comment" - }, - { - "include": "#string" - }, - { - "include": "#decorator" - }, - { - "include": "#destructuring-parameter" - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)) |\n# typeannotation is fn type: < | () | (... | (param: | (param, | (param? | (param= | (param) =>\n(:\\s*(\n (<) |\n ([(]\\s*(\n ([)]) |\n (\\.\\.\\.) |\n ([_$[:alnum:]]+\\s*(\n ([:,?=])|\n ([)]\\s*=>)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))) |\n(:\\s*(=>|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(<[^<>]*>)|[^<>(),=])+=\\s*(\n ((async\\s+)?(\n (function\\s*[(<*]) |\n (function\\s+) |\n ([_$[:alpha:]][_$[:alnum:]]*\\s*=>)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n)))", - "captures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "keyword.operator.rest.tsx" - }, - "3": { - "name": "entity.name.function.tsx variable.language.this.tsx" - }, - "4": { - "name": "entity.name.function.tsx" - }, - "5": { - "name": "keyword.operator.optional.tsx" - } - } - }, - { - "match": "(?x)(?:(?]|\\|\\||\\&\\&|\\!\\=\\=|$|((?>=|>>>=|\\|=" - }, - { - "name": "keyword.operator.bitwise.shift.tsx", - "match": "<<|>>>|>>" - }, - { - "name": "keyword.operator.comparison.tsx", - "match": "===|!==|==|!=" - }, - { - "name": "keyword.operator.relational.tsx", - "match": "<=|>=|<>|<|>" - }, - { - "match": "(?<=[_$[:alnum:]])(\\!)\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.logical.tsx" - }, - "2": { - "name": "keyword.operator.arithmetic.tsx" - } - } - }, - { - "name": "keyword.operator.logical.tsx", - "match": "\\!|&&|\\|\\||\\?\\?" - }, - { - "name": "keyword.operator.bitwise.tsx", - "match": "\\&|~|\\^|\\|" - }, - { - "name": "keyword.operator.assignment.tsx", - "match": "\\=" - }, - { - "name": "keyword.operator.decrement.tsx", - "match": "--" - }, - { - "name": "keyword.operator.increment.tsx", - "match": "\\+\\+" - }, - { - "name": "keyword.operator.arithmetic.tsx", - "match": "%|\\*|/|-|\\+" - }, - { - "begin": "(?<=[_$[:alnum:])\\]])\\s*(?=(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)+(/)(?![/*]))", - "end": "(/)(?!\\*([^\\*]|(\\*[^\\/]))*\\*\\/)", - "endCaptures": { - "1": { - "name": "keyword.operator.arithmetic.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - } - ] - }, - { - "match": "(?<=[_$[:alnum:])\\]])\\s*(/)(?![/*])", - "captures": { - "1": { - "name": "keyword.operator.arithmetic.tsx" - } - } - } - ] - }, - "typeof-operator": { - "begin": "(?]|$|;|(?:^\\s*(?:abstract|async|class|const|declare|enum|export|function|import|interface|let|module|namespace|return|type|var)\\b))", - "patterns": [ - { - "include": "#expression" - } - ] - }, - "literal": { - "patterns": [ - { - "include": "#numeric-literal" - }, - { - "include": "#boolean-literal" - }, - { - "include": "#null-literal" - }, - { - "include": "#undefined-literal" - }, - { - "include": "#numericConstant-literal" - }, - { - "include": "#array-literal" - }, - { - "include": "#this-literal" - }, - { - "include": "#super-literal" - } - ] - }, - "array-literal": { - "name": "meta.array.literal.tsx", - "begin": "\\s*(\\[)", - "beginCaptures": { - "1": { - "name": "meta.brace.square.tsx" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "meta.brace.square.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - }, - { - "include": "#punctuation-comma" - } - ] - }, - "numeric-literal": { - "patterns": [ - { - "name": "constant.numeric.hex.tsx", - "match": "\\b(?]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\\())\n |\n (?:(EPSILON|MAX_SAFE_INTEGER|MAX_VALUE|MIN_SAFE_INTEGER|MIN_VALUE|NEGATIVE_INFINITY|POSITIVE_INFINITY)\\b(?!\\$)))", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "support.variable.property.tsx" - }, - "4": { - "name": "support.constant.tsx" - } - } - }, - { - "match": "(?)\n )) |\n ((async\\s*)?(\n ((<\\s*$)|([\\(]\\s*((([\\{\\[]\\s*)?$)|((\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})\\s*((:\\s*\\{?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))))) |\n # sure shot arrow functions even if => is on new line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)?\n [(]\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*\n (\n ([)]\\s*:) | # ():\n ((\\.\\.\\.\\s*)?[_$[:alpha:]][_$[:alnum:]]*\\s*:) # [(]param: | [(]...param:\n )\n) |\n(\n [<]\\s*[_$[:alpha:]][_$[:alnum:]]*\\s+extends\\s*[^=>] # < typeparam extends\n) |\n# arrow function possible to detect only with => on same line\n(\n (<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<]|\\<\\s*([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\]))([^=<>]|=[^<])*\\>)*\\>)*>\\s*)? # typeparameters\n \\(\\s*(\\/\\*([^\\*]|(\\*[^\\/]))*\\*\\/\\s*)*(([_$[:alpha:]]|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\.\\.\\.\\s*[_$[:alpha:]]))([^()\\'\\\"\\`]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))*)?\\) # parameters\n (\\s*:\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+)? # return type\n \\s*=> # arrow operator\n)\n ))\n))", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "entity.name.function.tsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "variable.other.constant.property.tsx" - } - } - }, - { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "variable.other.property.tsx" - } - } - }, - { - "name": "variable.other.constant.tsx", - "match": "([[:upper:]][_$[:digit:][:upper:]]*)(?![_$[:alnum:]])" - }, - { - "name": "variable.other.readwrite.tsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "object-identifiers": { - "patterns": [ - { - "name": "support.class.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)(?=\\s*\\??\\.\\s*prototype\\b(?!\\$))" - }, - { - "match": "(?x)(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))\\s*(?:\n (\\#?[[:upper:]][_$[:digit:][:upper:]]*) |\n (\\#?[_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - }, - "3": { - "name": "variable.other.constant.object.property.tsx" - }, - "4": { - "name": "variable.other.object.property.tsx" - } - } - }, - { - "match": "(?x)(?:\n ([[:upper:]][_$[:digit:][:upper:]]*) |\n ([_$[:alpha:]][_$[:alnum:]]*)\n)(?=\\s*\\??\\.\\s*\\#?[_$[:alpha:]][_$[:alnum:]]*)", - "captures": { - "1": { - "name": "variable.other.constant.object.tsx" - }, - "2": { - "name": "variable.other.object.tsx" - } - } - } - ] - }, - "type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.tsx", - "begin": "(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?])|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - }, - { - "name": "meta.type.annotation.tsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?])|(?=^\\s*$)|((?<=\\S)(?=\\s*$))|((?<=[\\}>\\]\\)]|[_$[:alpha:]])\\s*(?=\\{)))", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "parameter-type-annotation": { - "patterns": [ - { - "name": "meta.type.annotation.tsx", - "begin": "(:)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?=[,)])|(?==[^>])", - "patterns": [ - { - "include": "#type" - } - ] - } - ] - }, - "return-type": { - "patterns": [ - { - "name": "meta.return.type.tsx", - "begin": "(?<=\\))\\s*(:)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "keyword.operator.type.annotation.tsx" - } - }, - "end": "(?|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "possibly-arrow-return-type": { - "begin": "(?<=\\)|^)\\s*(:)(?=\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*=>)", - "beginCaptures": { - "1": { - "name": "meta.arrow.tsx meta.return.type.arrow.tsx keyword.operator.type.annotation.tsx" - } - }, - "end": "(?==>|\\{|(^\\s*(export|function|class|interface|let|var|const|import|enum|namespace|module|type|abstract|declare)\\s+))", - "contentName": "meta.arrow.tsx meta.return.type.arrow.tsx", - "patterns": [ - { - "include": "#arrow-return-type-body" - } - ] - }, - "arrow-return-type-body": { - "patterns": [ - { - "begin": "(?<=[:])(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-parameters": { - "name": "meta.type.parameters.tsx", - "begin": "(<)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.begin.tsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "punctuation.definition.typeparameters.end.tsx" - } - }, - "patterns": [ - { - "include": "#comment" - }, - { - "name": "storage.modifier.tsx", - "match": "(?)" - } - ] - }, - "type-arguments": { - "name": "meta.type.parameters.tsx", - "begin": "\\<", - "beginCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.begin.tsx" - } - }, - "end": "\\>", - "endCaptures": { - "0": { - "name": "punctuation.definition.typeparameters.end.tsx" - } - }, - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - "type-arguments-body": { - "patterns": [ - { - "match": "(?)\n ))\n ))\n)) |\n(:\\s*(?\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*)))|((\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])\\s*((:\\s*\\[?$)|((\\s*([^<>\\(\\)\\{\\}]|\\<([^<>]|\\<([^<>]|\\<[^<>]+\\>)+\\>)+\\>|\\([^\\(\\)]+\\)|\\{[^\\{\\}]+\\})+\\s*)?=\\s*))))))))", - "captures": { - "1": { - "name": "storage.modifier.tsx" - }, - "2": { - "name": "keyword.operator.rest.tsx" - }, - "3": { - "name": "entity.name.function.tsx variable.language.this.tsx" - }, - "4": { - "name": "entity.name.function.tsx" - }, - "5": { - "name": "keyword.operator.optional.tsx" - } - } - }, - { - "match": "(?x)(?:(?)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-parameters" - } - ] - }, - { - "name": "meta.type.constructor.tsx", - "begin": "(?)\n ))\n )\n )\n)", - "end": "(?<=\\))", - "patterns": [ - { - "include": "#function-parameters" - } - ] - } - ] - }, - "type-function-return-type": { - "patterns": [ - { - "name": "meta.type.function.return.tsx", - "begin": "(=>)(?=\\s*\\S)", - "beginCaptures": { - "1": { - "name": "storage.type.function.arrow.tsx" - } - }, - "end": "(?)(?:\\?]|//|$)", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - }, - { - "name": "meta.type.function.return.tsx", - "begin": "=>", - "beginCaptures": { - "0": { - "name": "storage.type.function.arrow.tsx" - } - }, - "end": "(?)(?]|//|^\\s*$)|((?<=\\S)(?=\\s*$)))", - "patterns": [ - { - "include": "#type-function-return-type-core" - } - ] - } - ] - }, - "type-function-return-type-core": { - "patterns": [ - { - "include": "#comment" - }, - { - "begin": "(?<==>)(?=\\s*\\{)", - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "include": "#type-predicate-operator" - }, - { - "include": "#type" - } - ] - }, - "type-operators": { - "patterns": [ - { - "include": "#typeof-operator" - }, - { - "begin": "([&|])(?=\\s*\\{)", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.tsx" - } - }, - "end": "(?<=\\})", - "patterns": [ - { - "include": "#type-object" - } - ] - }, - { - "begin": "[&|]", - "beginCaptures": { - "0": { - "name": "keyword.operator.type.tsx" - } - }, - "end": "(?=\\S)" - }, - { - "name": "keyword.operator.expression.keyof.tsx", - "match": "(?)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" - } - }, - "contentName": "meta.type.parameters.tsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "begin": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(<)", - "beginCaptures": { - "1": { - "name": "entity.name.type.tsx" - }, - "2": { - "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx" - } - }, - "end": "(>)", - "endCaptures": { - "1": { - "name": "meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx" - } - }, - "contentName": "meta.type.parameters.tsx", - "patterns": [ - { - "include": "#type-arguments-body" - } - ] - }, - { - "match": "([_$[:alpha:]][_$[:alnum:]]*)\\s*(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "entity.name.type.module.tsx" - }, - "2": { - "name": "punctuation.accessor.tsx" - }, - "3": { - "name": "punctuation.accessor.optional.tsx" - } - } - }, - { - "name": "entity.name.type.tsx", - "match": "[_$[:alpha:]][_$[:alnum:]]*" - } - ] - }, - "punctuation-comma": { - "name": "punctuation.separator.comma.tsx", - "match": "," - }, - "punctuation-semicolon": { - "name": "punctuation.terminator.statement.tsx", - "match": ";" - }, - "punctuation-accessor": { - "match": "(?:(\\.)|(\\?\\.(?!\\s*[[:digit:]])))", - "captures": { - "1": { - "name": "punctuation.accessor.tsx" - }, - "2": { - "name": "punctuation.accessor.optional.tsx" - } - } - }, - "string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template" - } - ] - }, - "qstring-double": { - "name": "string.quoted.double.tsx", - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "end": "(\")|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.tsx" - }, - "2": { - "name": "invalid.illegal.newline.tsx" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "qstring-single": { - "name": "string.quoted.single.tsx", - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "end": "(\\')|((?:[^\\\\\\n])$)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.tsx" - }, - "2": { - "name": "invalid.illegal.newline.tsx" - } - }, - "patterns": [ - { - "include": "#string-character-escape" - } - ] - }, - "string-character-escape": { - "name": "constant.character.escape.tsx", - "match": "\\\\(x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}|u\\{[0-9A-Fa-f]+\\}|[0-2][0-7]{0,2}|3[0-6][0-7]?|37[0-7]?|[4-7][0-7]?|.|$)" - }, - "template": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.tsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.tsx" - }, - "2": { - "name": "punctuation.definition.string.template.begin.tsx" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.tsx" - } - }, - "patterns": [ - { - "include": "#template-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-call": { - "patterns": [ - { - "name": "string.template.tsx", - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*)(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "end": "(?=`)", - "patterns": [ - { - "begin": "(?=(([_$[:alpha:]][_$[:alnum:]]*\\s*\\??\\.\\s*)*|(\\??\\.\\s*)?)([_$[:alpha:]][_$[:alnum:]]*))", - "end": "(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)?`)", - "patterns": [ - { - "include": "#support-function-call-identifiers" - }, - { - "name": "entity.name.function.tagged-template.tsx", - "match": "([_$[:alpha:]][_$[:alnum:]]*)" - } - ] - }, - { - "include": "#type-arguments" - } - ] - }, - { - "name": "string.template.tsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?\\s*(?=(<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))(([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>|\\<\\s*(((keyof|infer|awaited|typeof|readonly)\\s+)|(([_$[:alpha:]][_$[:alnum:]]*|(\\{([^\\{\\}]|(\\{([^\\{\\}]|\\{[^\\{\\}]*\\})*\\}))*\\})|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(\\[([^\\[\\]]|(\\[([^\\[\\]]|\\[[^\\[\\]]*\\])*\\]))*\\])|(\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`))(?=\\s*([\\<\\>\\,\\.\\[]|=>|&(?!&)|\\|(?!\\|)))))([^<>\\(]|(\\(([^\\(\\)]|(\\(([^\\(\\)]|\\([^\\(\\)]*\\))*\\)))*\\))|(?<==)\\>)*(?))*(?)*(?\\s*)`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.tsx" - } - }, - "end": "(?=`)", - "patterns": [ - { - "include": "#type-arguments" - } - ] - } - ] - }, - "template-substitution-element": { - "name": "meta.template.expression.tsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.tsx" - } - }, - "patterns": [ - { - "include": "#expression" - } - ], - "contentName": "meta.embedded.line.tsx" - }, - "type-string": { - "patterns": [ - { - "include": "#qstring-single" - }, - { - "include": "#qstring-double" - }, - { - "include": "#template-type" - } - ] - }, - "template-type": { - "patterns": [ - { - "include": "#template-call" - }, - { - "name": "string.template.tsx", - "begin": "([_$[:alpha:]][_$[:alnum:]]*)?(`)", - "beginCaptures": { - "1": { - "name": "entity.name.function.tagged-template.tsx" - }, - "2": { - "name": "punctuation.definition.string.template.begin.tsx" - } - }, - "end": "`", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.template.end.tsx" - } - }, - "patterns": [ - { - "include": "#template-type-substitution-element" - }, - { - "include": "#string-character-escape" - } - ] - } - ] - }, - "template-type-substitution-element": { - "name": "meta.template.expression.tsx", - "begin": "\\$\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.template-expression.begin.tsx" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.template-expression.end.tsx" - } - }, - "patterns": [ - { - "include": "#type" - } - ], - "contentName": "meta.embedded.line.tsx" - }, - "regex": { - "patterns": [ - { - "name": "string.regexp.tsx", - "begin": "(?|&&|\\|\\||\\*\\/)\\s*(\\/)(?![\\/*])(?=(?:[^\\/\\\\\\[\\()]|\\\\.|\\[([^\\]\\\\]|\\\\.)+\\]|\\(([^\\)\\\\]|\\\\.)+\\))+\\/([gimsuy]+|(?![\\/\\*])|(?=\\/\\*))(?!\\s*[a-zA-Z0-9_$]))", - "beginCaptures": { - "1": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "end": "(/)([gimsuy]*)", - "endCaptures": { - "1": { - "name": "punctuation.definition.string.end.tsx" - }, - "2": { - "name": "keyword.other.tsx" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "string.regexp.tsx", - "begin": "((?", - "captures": { - "0": { - "name": "keyword.other.back-reference.regexp" - }, - "1": { - "name": "variable.other.regexp" - } - } - }, - { - "name": "keyword.operator.quantifier.regexp", - "match": "[?+*]|\\{(\\d+,\\d+|\\d+,|,\\d+|\\d+)\\}\\??" - }, - { - "name": "keyword.operator.or.regexp", - "match": "\\|" - }, - { - "name": "meta.group.assertion.regexp", - "begin": "(\\()((\\?=)|(\\?!)|(\\?<=)|(\\?))?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - }, - "1": { - "name": "punctuation.definition.group.no-capture.regexp" - }, - "2": { - "name": "variable.other.regexp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.definition.group.regexp" - } - }, - "patterns": [ - { - "include": "#regexp" - } - ] - }, - { - "name": "constant.other.character-class.set.regexp", - "begin": "(\\[)(\\^)?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - }, - "2": { - "name": "keyword.operator.negation.regexp" - } - }, - "end": "(\\])", - "endCaptures": { - "1": { - "name": "punctuation.definition.character-class.regexp" - } - }, - "patterns": [ - { - "name": "constant.other.character-class.range.regexp", - "match": "(?:.|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))\\-(?:[^\\]\\\\]|(\\\\(?:[0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4}))|(\\\\c[A-Z])|(\\\\.))", - "captures": { - "1": { - "name": "constant.character.numeric.regexp" - }, - "2": { - "name": "constant.character.control.regexp" - }, - "3": { - "name": "constant.character.escape.backslash.regexp" - }, - "4": { - "name": "constant.character.numeric.regexp" - }, - "5": { - "name": "constant.character.control.regexp" - }, - "6": { - "name": "constant.character.escape.backslash.regexp" - } - } - }, - { - "include": "#regex-character-class" - } - ] - }, - { - "include": "#regex-character-class" - } - ] - }, - "regex-character-class": { - "patterns": [ - { - "name": "constant.other.character-class.regexp", - "match": "\\\\[wWsSdDtrnvf]|\\." - }, - { - "name": "constant.character.numeric.regexp", - "match": "\\\\([0-7]{3}|x[0-9A-Fa-f]{2}|u[0-9A-Fa-f]{4})" - }, - { - "name": "constant.character.control.regexp", - "match": "\\\\c[A-Z]" - }, - { - "name": "constant.character.escape.backslash.regexp", - "match": "\\\\." - } - ] - }, - "comment": { - "patterns": [ - { - "name": "comment.block.documentation.tsx", - "begin": "/\\*\\*(?!/)", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.tsx" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.tsx" - } - }, - "patterns": [ - { - "include": "#docblock" - } - ] - }, - { - "name": "comment.block.tsx", - "begin": "(/\\*)(?:\\s*((@)internal)(?=\\s|(\\*/)))?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.tsx" - }, - "2": { - "name": "storage.type.internaldeclaration.tsx" - }, - "3": { - "name": "punctuation.decorator.internaldeclaration.tsx" - } - }, - "end": "\\*/", - "endCaptures": { - "0": { - "name": "punctuation.definition.comment.tsx" - } - } - }, - { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.tsx" - }, - "2": { - "name": "comment.line.double-slash.tsx" - }, - "3": { - "name": "punctuation.definition.comment.tsx" - }, - "4": { - "name": "storage.type.internaldeclaration.tsx" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.tsx" - } - }, - "end": "(?=$)", - "contentName": "comment.line.double-slash.tsx" - } - ] - }, - "single-line-comment-consuming-line-ending": { - "begin": "(^[ \\t]+)?((//)(?:\\s*((@)internal)(?=\\s|$))?)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.tsx" - }, - "2": { - "name": "comment.line.double-slash.tsx" - }, - "3": { - "name": "punctuation.definition.comment.tsx" - }, - "4": { - "name": "storage.type.internaldeclaration.tsx" - }, - "5": { - "name": "punctuation.decorator.internaldeclaration.tsx" - } - }, - "end": "(?=^)", - "contentName": "comment.line.double-slash.tsx" - }, - "directives": { - "name": "comment.line.triple-slash.directive.tsx", - "begin": "^(///)\\s*(?=<(reference|amd-dependency|amd-module)(\\s+(path|types|no-default-lib|lib|name)\\s*=\\s*((\\'([^\\'\\\\]|\\\\.)*\\')|(\\\"([^\\\"\\\\]|\\\\.)*\\\")|(\\`([^\\`\\\\]|\\\\.)*\\`)))+\\s*/>\\s*$)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.comment.tsx" - } - }, - "end": "(?=$)", - "patterns": [ - { - "name": "meta.tag.tsx", - "begin": "(<)(reference|amd-dependency|amd-module)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.directive.tsx" - }, - "2": { - "name": "entity.name.tag.directive.tsx" - } - }, - "end": "/>", - "endCaptures": { - "0": { - "name": "punctuation.definition.tag.directive.tsx" - } - }, - "patterns": [ - { - "name": "entity.other.attribute-name.directive.tsx", - "match": "path|types|no-default-lib|lib|name" - }, - { - "name": "keyword.operator.assignment.tsx", - "match": "=" - }, - { - "include": "#string" - } - ] - } - ] - }, - "docblock": { - "patterns": [ - { - "match": "(?x)\n((@)(?:access|api))\n\\s+\n(private|protected|public)\n\\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.access-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)author)\n\\s+\n(\n [^@\\s<>*/]\n (?:[^@<>*/]|\\*[^/])*\n)\n(?:\n \\s*\n (<)\n ([^>\\s]+)\n (>)\n)?", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "5": { - "name": "constant.other.email.link.underline.jsdoc" - }, - "6": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)borrows) \\s+\n((?:[^@\\s*/]|\\*[^/])+) # \n\\s+ (as) \\s+ # as\n((?:[^@\\s*/]|\\*[^/])+) # ", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - }, - "4": { - "name": "keyword.operator.control.jsdoc" - }, - "5": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "name": "meta.example.jsdoc", - "begin": "((@)example)\\s+", - "end": "(?=@|\\*/)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "patterns": [ - { - "match": "^\\s\\*\\s+" - }, - { - "contentName": "constant.other.description.jsdoc", - "begin": "\\G(<)caption(>)", - "beginCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - }, - "end": "()|(?=\\*/)", - "endCaptures": { - "0": { - "name": "entity.name.tag.inline.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.angle.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.angle.end.jsdoc" - } - } - }, - { - "match": "[^\\s@*](?:[^*]|\\*[^/])*", - "captures": { - "0": { - "name": "source.embedded.tsx" - } - } - } - ] - }, - { - "match": "(?x) ((@)kind) \\s+ (class|constant|event|external|file|function|member|mixin|module|namespace|typedef) \\b", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "constant.language.symbol-type.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)see)\n\\s+\n(?:\n # URL\n (\n (?=https?://)\n (?:[^\\s*]|\\*[^/])+\n )\n |\n # JSDoc namepath\n (\n (?!\n # Avoid matching bare URIs (also acceptable as links)\n https?://\n |\n # Avoid matching {@inline tags}; we match those below\n (?:\\[[^\\[\\]]*\\])? # Possible description [preceding]{@tag}\n {@(?:link|linkcode|linkplain|tutorial)\\b\n )\n # Matched namepath\n (?:[^@\\s*/]|\\*[^/])+\n )\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.link.underline.jsdoc" - }, - "4": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "match": "(?x)\n((@)template)\n\\s+\n# One or more valid identifiers\n(\n [A-Za-z_$] # First character: non-numeric word character\n [\\w$.\\[\\]]* # Rest of identifier\n (?: # Possible list of additional identifiers\n \\s* , \\s*\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n )*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "match": "(?x)\n(\n (@)\n (?:arg|argument|const|constant|member|namespace|param|var)\n)\n\\s+\n(\n [A-Za-z_$]\n [\\w$.\\[\\]]*\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "begin": "((@)typedef)\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "entity.name.type.instance.jsdoc", - "match": "(?:[^@\\s*/]|\\*[^/])+" - } - ] - }, - { - "begin": "((@)(?:arg|argument|const|constant|member|namespace|param|prop|property|var))\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - }, - { - "name": "variable.other.jsdoc", - "match": "([A-Za-z_$][\\w$.\\[\\]]*)" - }, - { - "name": "variable.other.jsdoc", - "match": "(?x)\n(\\[)\\s*\n[\\w$]+\n(?:\n (?:\\[\\])? # Foo[ ].bar properties within an array\n \\. # Foo.Bar namespaced parameter\n [\\w$]+\n)*\n(?:\n \\s*\n (=) # [foo=bar] Default parameter value\n \\s*\n (\n # The inner regexes are to stop the match early at */ and to not stop at escaped quotes\n (?>\n \"(?:(?:\\*(?!/))|(?:\\\\(?!\"))|[^*\\\\])*?\" | # [foo=\"bar\"] Double-quoted\n '(?:(?:\\*(?!/))|(?:\\\\(?!'))|[^*\\\\])*?' | # [foo='bar'] Single-quoted\n \\[ (?:(?:\\*(?!/))|[^*])*? \\] | # [foo=[1,2]] Array literal\n (?:(?:\\*(?!/))|\\s(?!\\s*\\])|\\[.*?(?:\\]|(?=\\*/))|[^*\\s\\[\\]])* # Everything else\n )*\n )\n)?\n\\s*(?:(\\])((?:[^*\\s]|\\*[^\\s/])+)?|(?=\\*/))", - "captures": { - "1": { - "name": "punctuation.definition.optional-value.begin.bracket.square.jsdoc" - }, - "2": { - "name": "keyword.operator.assignment.jsdoc" - }, - "3": { - "name": "source.embedded.tsx" - }, - "4": { - "name": "punctuation.definition.optional-value.end.bracket.square.jsdoc" - }, - "5": { - "name": "invalid.illegal.syntax.jsdoc" - } - } - } - ] - }, - { - "begin": "(?x)\n(\n (@)\n (?:define|enum|exception|export|extends|lends|implements|modifies\n |namespace|private|protected|returns?|suppress|this|throws|type\n |yields?)\n)\n\\s+(?={)", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - }, - "end": "(?=\\s|\\*/|[^{}\\[\\]A-Za-z_$])", - "patterns": [ - { - "include": "#jsdoctype" - } - ] - }, - { - "match": "(?x)\n(\n (@)\n (?:alias|augments|callback|constructs|emits|event|fires|exports?\n |extends|external|function|func|host|lends|listens|interface|memberof!?\n |method|module|mixes|mixin|name|requires|see|this|typedef|uses)\n)\n\\s+\n(\n (?:\n [^{}@\\s*] | \\*[^/]\n )+\n)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "entity.name.type.instance.jsdoc" - } - } - }, - { - "contentName": "variable.other.jsdoc", - "begin": "((@)(?:default(?:value)?|license|version))\\s+(([''\"]))", - "beginCaptures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - }, - "4": { - "name": "punctuation.definition.string.begin.jsdoc" - } - }, - "end": "(\\3)|(?=$|\\*/)", - "endCaptures": { - "0": { - "name": "variable.other.jsdoc" - }, - "1": { - "name": "punctuation.definition.string.end.jsdoc" - } - } - }, - { - "match": "((@)(?:default(?:value)?|license|tutorial|variation|version))\\s+([^\\s*]+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - }, - "3": { - "name": "variable.other.jsdoc" - } - } - }, - { - "name": "storage.type.class.jsdoc", - "match": "(?x) (@) (?:abstract|access|alias|api|arg|argument|async|attribute|augments|author|beta|borrows|bubbles |callback|chainable|class|classdesc|code|config|const|constant|constructor|constructs|copyright |default|defaultvalue|define|deprecated|desc|description|dict|emits|enum|event|example|exception |exports?|extends|extension(?:_?for)?|external|externs|file|fileoverview|final|fires|for|func |function|generator|global|hideconstructor|host|ignore|implements|implicitCast|inherit[Dd]oc |inner|instance|interface|internal|kind|lends|license|listens|main|member|memberof!?|method |mixes|mixins?|modifies|module|name|namespace|noalias|nocollapse|nocompile|nosideeffects |override|overview|package|param|polymer(?:Behavior)?|preserve|private|prop|property|protected |public|read[Oo]nly|record|require[ds]|returns?|see|since|static|struct|submodule|summary |suppress|template|this|throws|todo|tutorial|type|typedef|unrestricted|uses|var|variation |version|virtual|writeOnce|yields?) \\b", - "captures": { - "1": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - }, - { - "include": "#inline-tags" - }, - { - "match": "((@)(?:[_$[:alpha:]][_$[:alnum:]]*))(?=\\s+)", - "captures": { - "1": { - "name": "storage.type.class.jsdoc" - }, - "2": { - "name": "punctuation.definition.block.tag.jsdoc" - } - } - } - ] - }, - "brackets": { - "patterns": [ - { - "begin": "{", - "end": "}|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - }, - { - "begin": "\\[", - "end": "\\]|(?=\\*/)", - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "inline-tags": { - "patterns": [ - { - "name": "constant.other.description.jsdoc", - "match": "(\\[)[^\\]]+(\\])(?={@(?:link|linkcode|linkplain|tutorial))", - "captures": { - "1": { - "name": "punctuation.definition.bracket.square.begin.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.square.end.jsdoc" - } - } - }, - { - "name": "entity.name.type.instance.jsdoc", - "begin": "({)((@)(?:link(?:code|plain)?|tutorial))\\s*", - "beginCaptures": { - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - }, - "2": { - "name": "storage.type.class.jsdoc" - }, - "3": { - "name": "punctuation.definition.inline.tag.jsdoc" - } - }, - "end": "}|(?=\\*/)", - "endCaptures": { - "0": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "match": "\\G((?=https?://)(?:[^|}\\s*]|\\*[/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.link.underline.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - }, - { - "match": "\\G((?:[^{}@\\s|*]|\\*[^/])+)(\\|)?", - "captures": { - "1": { - "name": "variable.other.description.jsdoc" - }, - "2": { - "name": "punctuation.separator.pipe.jsdoc" - } - } - } - ] - } - ] - }, - "jsdoctype": { - "patterns": [ - { - "contentName": "entity.name.type.instance.jsdoc", - "begin": "\\G({)", - "beginCaptures": { - "0": { - "name": "entity.name.type.instance.jsdoc" - }, - "1": { - "name": "punctuation.definition.bracket.curly.begin.jsdoc" - } - }, - "end": "((}))\\s*|(?=\\*/)", - "endCaptures": { - "1": { - "name": "entity.name.type.instance.jsdoc" - }, - "2": { - "name": "punctuation.definition.bracket.curly.end.jsdoc" - } - }, - "patterns": [ - { - "include": "#brackets" - } - ] - } - ] - }, - "jsx": { - "patterns": [ - { - "include": "#jsx-tag-without-attributes-in-expression" - }, - { - "include": "#jsx-tag-in-expression" - } - ] - }, - "jsx-tag-without-attributes-in-expression": { - "begin": "(?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "patterns": [ - { - "include": "#jsx-tag-without-attributes" - } - ] - }, - "jsx-tag-without-attributes": { - "name": "meta.tag.without-attributes.tsx", - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)", - "end": "()", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.tsx" - }, - "2": { - "name": "entity.name.tag.namespace.tsx" - }, - "3": { - "name": "punctuation.separator.namespace.tsx" - }, - "4": { - "name": "entity.name.tag.tsx" - }, - "5": { - "name": "support.class.component.tsx" - }, - "6": { - "name": "punctuation.definition.tag.end.tsx" - } - }, - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.tsx" - }, - "2": { - "name": "entity.name.tag.namespace.tsx" - }, - "3": { - "name": "punctuation.separator.namespace.tsx" - }, - "4": { - "name": "entity.name.tag.tsx" - }, - "5": { - "name": "support.class.component.tsx" - }, - "6": { - "name": "punctuation.definition.tag.end.tsx" - } - }, - "contentName": "meta.jsx.children.tsx", - "patterns": [ - { - "include": "#jsx-children" - } - ] - }, - "jsx-tag-in-expression": { - "begin": "(?x)\n (?:*]|&&|\\|\\||\\?|\\*\\/|^await|[^\\._$[:alnum:]]await|^return|[^\\._$[:alnum:]]return|^default|[^\\._$[:alnum:]]default|^yield|[^\\._$[:alnum:]]yield|^)\\s*\n (?!<\\s*[_$[:alpha:]][_$[:alnum:]]*((\\s+extends\\s+[^=>])|,)) # look ahead is not type parameter of arrow\n (?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(?!(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "patterns": [ - { - "include": "#jsx-tag" - } - ] - }, - "jsx-tag": { - "name": "meta.tag.tsx", - "begin": "(?=(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?))", - "end": "(/>)|(?:())", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.end.tsx" - }, - "2": { - "name": "punctuation.definition.tag.begin.tsx" - }, - "3": { - "name": "entity.name.tag.namespace.tsx" - }, - "4": { - "name": "punctuation.separator.namespace.tsx" - }, - "5": { - "name": "entity.name.tag.tsx" - }, - "6": { - "name": "support.class.component.tsx" - }, - "7": { - "name": "punctuation.definition.tag.end.tsx" - } - }, - "patterns": [ - { - "begin": "(<)\\s*(?:([_$[:alpha:]][-_$[:alnum:].]*)(?)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.begin.tsx" - }, - "2": { - "name": "entity.name.tag.namespace.tsx" - }, - "3": { - "name": "punctuation.separator.namespace.tsx" - }, - "4": { - "name": "entity.name.tag.tsx" - }, - "5": { - "name": "support.class.component.tsx" - } - }, - "end": "(?=[/]?>)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#type-arguments" - }, - { - "include": "#jsx-tag-attributes" - } - ] - }, - { - "begin": "(>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.end.tsx" - } - }, - "end": "(?=)", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#jsx-tag-attribute-name" - }, - { - "include": "#jsx-tag-attribute-assignment" - }, - { - "include": "#jsx-string-double-quoted" - }, - { - "include": "#jsx-string-single-quoted" - }, - { - "include": "#jsx-evaluated-code" - }, - { - "include": "#jsx-tag-attributes-illegal" - } - ] - }, - "jsx-tag-attribute-name": { - "match": "(?x)\n \\s*\n (?:([_$[:alpha:]][-_$[:alnum:].]*)(:))?\n ([_$[:alpha:]][-_$[:alnum:]]*)\n (?=\\s|=|/?>|/\\*|//)", - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.tsx" - }, - "2": { - "name": "punctuation.separator.namespace.tsx" - }, - "3": { - "name": "entity.other.attribute-name.tsx" - } - } - }, - "jsx-tag-attribute-assignment": { - "name": "keyword.operator.assignment.tsx", - "match": "=(?=\\s*(?:'|\"|{|/\\*|//|\\n))" - }, - "jsx-string-double-quoted": { - "name": "string.quoted.double.tsx", - "begin": "\"", - "end": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.tsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-string-single-quoted": { - "name": "string.quoted.single.tsx", - "begin": "'", - "end": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.tsx" - } - }, - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.tsx" - } - }, - "patterns": [ - { - "include": "#jsx-entities" - } - ] - }, - "jsx-tag-attributes-illegal": { - "name": "invalid.illegal.attribute.tsx", - "match": "\\S+" - } - } -} \ No newline at end of file diff --git a/extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json b/extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json deleted file mode 100644 index cdc3b47f828..00000000000 --- a/extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json +++ /dev/null @@ -1,21 +0,0 @@ - -{ - "injectionSelector": "L:comment.block.documentation", - "patterns": [ - { - "include": "#jsdocbody" - } - ], - "repository": { - "jsdocbody": { - "begin": "(?<=/\\*\\*)([^*]|\\*(?!/))*$", - "while": "(^|\\G)\\s*\\*(?!/)(?=([^*]|[*](?!/))*$)", - "patterns": [ - { - "include": "source.ts#docblock" - } - ] - } - }, - "scopeName": "documentation.injection.js.jsx" -} diff --git a/extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json b/extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json deleted file mode 100644 index 4426e406fde..00000000000 --- a/extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json +++ /dev/null @@ -1,21 +0,0 @@ - -{ - "injectionSelector": "L:comment.block.documentation", - "patterns": [ - { - "include": "#jsdocbody" - } - ], - "repository": { - "jsdocbody": { - "begin": "(?<=/\\*\\*)([^*]|\\*(?!/))*$", - "while": "(^|\\G)\\s*\\*(?!/)(?=([^*]|[*](?!/))*$)", - "patterns": [ - { - "include": "source.ts#docblock" - } - ] - } - }, - "scopeName": "documentation.injection.ts" -} diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-brackets.tsx b/extensions/typescript-basics/test/colorize-fixtures/test-brackets.tsx deleted file mode 100644 index a0ffed64a8f..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-brackets.tsx +++ /dev/null @@ -1,6 +0,0 @@ -let a = Array(); // Highlight ok here - -interface egGenericsInArray { - a: Array; -} -let s = "nothing should fail here..."; \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-function-inv.ts b/extensions/typescript-basics/test/colorize-fixtures/test-function-inv.ts deleted file mode 100644 index 27b48c02613..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-function-inv.ts +++ /dev/null @@ -1 +0,0 @@ -rowData.push(callback(new Cell(row, col, false))); \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-issue11.ts b/extensions/typescript-basics/test/colorize-fixtures/test-issue11.ts deleted file mode 100644 index 8e17f24eaff..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-issue11.ts +++ /dev/null @@ -1,17 +0,0 @@ -let keyCode = 0; -if(!(keyCode === 8 || (keyCode>=48 && keyCode<=57))) {} -for (let i=0; i<5; i++) {} -for (var i=0; i<5; i++) {} -for (let i=0; i<5; i++) {} -for (; i<5;) {} -for (let i=0; 1+( i<<5 ) < 5;i++) {} -var p = 1?2:(3<4?5:6); -class A { } -class A1 string }> { } -class B { } -class C { } -function foo() { return 1;} -let x1: A<(param?: number) => void, B>; -let x2: A; -const t = 1 < (5 > 10 ? 1 : 2); -var f6 = 1 < foo(); \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-issue5431.ts b/extensions/typescript-basics/test/colorize-fixtures/test-issue5431.ts deleted file mode 100644 index daa795cc4f1..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-issue5431.ts +++ /dev/null @@ -1,4 +0,0 @@ -function foo(isAll, startTime, endTime) { - const timeRange = isAll ? '所有时间' : `${startTime} - ${endTime}`; - return true; -} \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-issue5465.ts b/extensions/typescript-basics/test/colorize-fixtures/test-issue5465.ts deleted file mode 100644 index 95d23a2bbd7..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-issue5465.ts +++ /dev/null @@ -1,4 +0,0 @@ -function* foo2() { - yield 'bar'; - yield* ['bar']; -} \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-issue5566.ts b/extensions/typescript-basics/test/colorize-fixtures/test-issue5566.ts deleted file mode 100644 index 55810e6783a..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-issue5566.ts +++ /dev/null @@ -1,3 +0,0 @@ -function foo3() { - const foo = (): any => ({ 'bar': 'baz' }) -} \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-jsdoc-multiline-type.ts b/extensions/typescript-basics/test/colorize-fixtures/test-jsdoc-multiline-type.ts deleted file mode 100644 index eda831efe02..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-jsdoc-multiline-type.ts +++ /dev/null @@ -1,22 +0,0 @@ -/** - * @typedef {{ - * id: number, - * fn: !Function, - * context: (!Object|undefined) - * }} - * @private - */ -goog.dom.animationFrame.Task_; - - -/** - * @typedef {{ - * measureTask: goog.dom.animationFrame.Task_, - * mutateTask: goog.dom.animationFrame.Task_, - * state: (!Object|undefined), - * args: (!Array|undefined), - * isScheduled: boolean - * }} - * @private - */ -goog.dom.animationFrame.TaskSet_; \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-keywords.ts b/extensions/typescript-basics/test/colorize-fixtures/test-keywords.ts deleted file mode 100644 index 227c76bb954..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-keywords.ts +++ /dev/null @@ -1 +0,0 @@ -export var foo = () => new RegExp(''); diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-members.ts b/extensions/typescript-basics/test/colorize-fixtures/test-members.ts deleted file mode 100644 index 8bf0eb33374..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-members.ts +++ /dev/null @@ -1,5 +0,0 @@ -class A2 extends B1 { - public count: number = 9; - public resolveNextGeneration(cell : A2) { - } -} \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-object-literals.ts b/extensions/typescript-basics/test/colorize-fixtures/test-object-literals.ts deleted file mode 100644 index 188eeaf5b52..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-object-literals.ts +++ /dev/null @@ -1,6 +0,0 @@ -let s1 = { - k: { - k1: s, - k2: 1 - } -}; \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-strings.ts b/extensions/typescript-basics/test/colorize-fixtures/test-strings.ts deleted file mode 100644 index de369bf2e85..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-strings.ts +++ /dev/null @@ -1,4 +0,0 @@ -var x = `Hello ${foo}!`; -console.log(`string text line 1 -string text line 2`); -x = tag`Hello ${ a + b } world ${ a * b }`; \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test-this.ts b/extensions/typescript-basics/test/colorize-fixtures/test-this.ts deleted file mode 100644 index 5c5e7decaf7..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test-this.ts +++ /dev/null @@ -1,3 +0,0 @@ -{ - this.foo = 9; -} \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-fixtures/test.ts b/extensions/typescript-basics/test/colorize-fixtures/test.ts deleted file mode 100644 index b9c80efd386..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/test.ts +++ /dev/null @@ -1,111 +0,0 @@ -/* Game of Life - * Implemented in TypeScript - * To learn more about TypeScript, please visit http://www.typescriptlang.org/ - */ - -module Conway { - - export class Cell { - public row: number; - public col: number; - public live: boolean; - - constructor(row: number, col: number, live: boolean) { - this.row = row; - this.col = col; - this.live = live - } - } - - export class GameOfLife { - private gridSize: number; - private canvasSize: number; - private lineColor: string; - private liveColor: string; - private deadColor: string; - private initialLifeProbability: number; - private animationRate: number; - private cellSize: number; - private world; - - - constructor() { - this.gridSize = 50; - this.canvasSize = 600; - this.lineColor = '#cdcdcd'; - this.liveColor = '#666'; - this.deadColor = '#eee'; - this.initialLifeProbability = 0.5; - this.animationRate = 60; - this.cellSize = 0; - this.world = this.createWorld(); - this.circleOfLife(); - } - - public createWorld() { - return this.travelWorld( (cell : Cell) => { - cell.live = Math.random() < this.initialLifeProbability; - return cell; - }); - } - - public circleOfLife() : void { - this.world = this.travelWorld( (cell: Cell) => { - cell = this.world[cell.row][cell.col]; - this.draw(cell); - return this.resolveNextGeneration(cell); - }); - setTimeout( () => {this.circleOfLife()}, this.animationRate); - } - - public resolveNextGeneration(cell : Cell) { - var count = this.countNeighbors(cell); - var newCell = new Cell(cell.row, cell.col, cell.live); - if(count < 2 || count > 3) newCell.live = false; - else if(count == 3) newCell.live = true; - return newCell; - } - - public countNeighbors(cell : Cell) { - var neighbors = 0; - for(var row = -1; row <=1; row++) { - for(var col = -1; col <= 1; col++) { - if(row == 0 && col == 0) continue; - if(this.isAlive(cell.row + row, cell.col + col)) { - neighbors++; - } - } - } - return neighbors; - } - - public isAlive(row : number, col : number) { - if(row < 0 || col < 0 || row >= this.gridSize || col >= this.gridSize) return false; - return this.world[row][col].live; - } - - public travelWorld(callback) { - var result = []; - for(var row = 0; row < this.gridSize; row++) { - var rowData = []; - for(var col = 0; col < this.gridSize; col++) { - rowData.push(callback(new Cell(row, col, false))); - } - result.push(rowData); - } - return result; - } - - public draw(cell : Cell) { - if(this.cellSize == 0) this.cellSize = this.canvasSize/this.gridSize; - - this.context.strokeStyle = this.lineColor; - this.context.strokeRect(cell.row * this.cellSize, cell.col*this.cellSize, this.cellSize, this.cellSize); - this.context.fillStyle = cell.live ? this.liveColor : this.deadColor; - this.context.fillRect(cell.row * this.cellSize, cell.col*this.cellSize, this.cellSize, this.cellSize); - } - - } -} - -var game = new Conway.GameOfLife(); diff --git a/extensions/typescript-basics/test/colorize-fixtures/tsconfig_off.json b/extensions/typescript-basics/test/colorize-fixtures/tsconfig_off.json deleted file mode 100644 index 49ba2ff1236..00000000000 --- a/extensions/typescript-basics/test/colorize-fixtures/tsconfig_off.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "compilerOptions": { - "target": "es6" - } -} \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-brackets_tsx.json b/extensions/typescript-basics/test/colorize-results/test-brackets_tsx.json deleted file mode 100644 index c7e165ae25e..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-brackets_tsx.json +++ /dev/null @@ -1,442 +0,0 @@ -[ - { - "c": "let", - "t": "source.tsx meta.var.expr.tsx storage.type.tsx", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.tsx meta.var.expr.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx", - "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" - } - }, - { - "c": " ", - "t": "source.tsx meta.var.expr.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Array", - "t": "source.tsx meta.var.expr.tsx meta.function-call.tsx support.class.builtin.tsx", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.tsx meta.var.expr.tsx meta.type.parameters.tsx support.type.primitive.tsx", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.tsx meta.var.expr.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "()", - "t": "source.tsx meta.var.expr.tsx meta.brace.round.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.tsx punctuation.terminator.statement.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "//", - "t": "source.tsx comment.line.double-slash.tsx punctuation.definition.comment.tsx", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Highlight ok here", - "t": "source.tsx comment.line.double-slash.tsx", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "interface", - "t": "source.tsx meta.interface.tsx storage.type.interface.tsx", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.tsx meta.interface.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "egGenericsInArray", - "t": "source.tsx meta.interface.tsx entity.name.type.interface.tsx", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.tsx meta.interface.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.tsx meta.interface.tsx punctuation.definition.block.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx meta.definition.property.tsx variable.object.property.tsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx keyword.operator.type.annotation.tsx", - "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" - } - }, - { - "c": " ", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Array", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx entity.name.type.tsx", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.begin.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx support.type.primitive.tsx", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.tsx meta.interface.tsx meta.field.declaration.tsx meta.type.annotation.tsx meta.type.parameters.tsx punctuation.definition.typeparameters.end.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.tsx meta.interface.tsx punctuation.terminator.statement.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.tsx meta.interface.tsx punctuation.definition.block.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.tsx meta.var.expr.tsx storage.type.tsx", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.tsx meta.var.expr.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "s", - "t": "source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx meta.definition.variable.tsx variable.other.readwrite.tsx", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.tsx meta.var.expr.tsx meta.var-single-variable.expr.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.tsx meta.var.expr.tsx keyword.operator.assignment.tsx", - "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" - } - }, - { - "c": " ", - "t": "source.tsx meta.var.expr.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.tsx meta.var.expr.tsx string.quoted.double.tsx punctuation.definition.string.begin.tsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "nothing should fail here...", - "t": "source.tsx meta.var.expr.tsx string.quoted.double.tsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.tsx meta.var.expr.tsx string.quoted.double.tsx punctuation.definition.string.end.tsx", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.tsx punctuation.terminator.statement.tsx", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-function-inv_ts.json b/extensions/typescript-basics/test/colorize-results/test-function-inv_ts.json deleted file mode 100644 index 0029c988532..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-function-inv_ts.json +++ /dev/null @@ -1,222 +0,0 @@ -[ - { - "c": "rowData", - "t": "source.ts meta.function-call.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "push", - "t": "source.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "callback", - "t": "source.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.ts new.expr.ts keyword.operator.new.ts", - "r": { - "dark_plus": "keyword.operator.new: #569CD6", - "light_plus": "keyword.operator.new: #0000FF", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "keyword.operator.new: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts new.expr.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts new.expr.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts new.expr.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts new.expr.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts new.expr.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "false", - "t": "source.ts new.expr.ts constant.language.boolean.false.ts", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ")", - "t": "source.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "))", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-issue11_ts.json b/extensions/typescript-basics/test/colorize-results/test-issue11_ts.json deleted file mode 100644 index 4dfc0bbeffe..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-issue11_ts.json +++ /dev/null @@ -1,3401 +0,0 @@ -[ - { - "c": "let", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "keyCode", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "!", - "t": "source.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "keyCode", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "===", - "t": "source.ts keyword.operator.comparison.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "8", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "keyCode", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ">=", - "t": "source.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "48", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&&", - "t": "source.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "keyCode", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "<=", - "t": "source.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "57", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ")))", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{}", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": "0", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "<", - "t": "source.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "5", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{}", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": "0", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "<", - "t": "source.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "5", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{}", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": "0", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "<", - "t": "source.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "5", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{}", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "<", - "t": "source.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "5", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{}", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": "0", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": "+", - "t": "source.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "<<", - "t": "source.ts keyword.operator.bitwise.shift.ts", - "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" - } - }, - { - "c": "5", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "i", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{}", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "p", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": "?", - "t": "source.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": "2", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": "(", - "t": "source.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": "<", - "t": "source.ts meta.var.expr.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "4", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": "?", - "t": "source.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": "5", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": "6", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.ts meta.class.ts storage.type.class.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.ts meta.class.ts entity.name.type.class.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "X", - "t": "source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.ts meta.class.ts meta.type.parameters.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Y", - "t": "source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.ts meta.class.ts storage.type.class.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A1", - "t": "source.ts meta.class.ts entity.name.type.class.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "T", - "t": "source.ts meta.class.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "extends", - "t": "source.ts meta.class.ts meta.type.parameters.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.definition.property.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": ":", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts storage.type.function.arrow.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "string", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts meta.field.declaration.ts meta.type.annotation.ts meta.type.function.return.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.class.ts meta.type.parameters.ts meta.object.type.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.ts meta.class.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.ts meta.class.ts storage.type.class.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.ts meta.class.ts entity.name.type.class.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.ts meta.class.ts storage.type.class.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.ts meta.class.ts entity.name.type.class.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "function", - "t": "source.ts meta.function.ts storage.type.function.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "<", - "t": "source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "T", - "t": "source.ts meta.function.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.ts meta.function.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.function.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts meta.function.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x1", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "param", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "?", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts keyword.operator.optional.ts", - "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" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.return.ts storage.type.function.arrow.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.return.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts meta.type.function.return.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "let", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x2", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "<", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "|", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts keyword.operator.type.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "C", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts keyword.operator.type.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.type.annotation.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "const", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "t", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.var.expr.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.ts meta.var.expr.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "10", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?", - "t": "source.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "f6", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.var.expr.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "<", - "t": "source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "string", - "t": "source.ts meta.var.expr.ts meta.type.parameters.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ">", - "t": "source.ts meta.var.expr.ts meta.type.parameters.ts punctuation.definition.typeparameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "()", - "t": "source.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-issue5431_ts.json b/extensions/typescript-basics/test/colorize-results/test-issue5431_ts.json deleted file mode 100644 index b079500f022..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-issue5431_ts.json +++ /dev/null @@ -1,519 +0,0 @@ -[ - { - "c": "function", - "t": "source.ts meta.function.ts storage.type.function.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "isAll", - "t": "source.ts meta.function.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "startTime", - "t": "source.ts meta.function.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.separator.parameter.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "endTime", - "t": "source.ts meta.function.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "const", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "timeRange", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts", - "r": { - "dark_plus": "variable.other.constant: #4FC1FF", - "light_plus": "variable.other.constant: #0070C1", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "isAll", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "所有时间", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "`", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.begin: #569CD6", - "light_plus": "punctuation.definition.template-expression.begin: #0000FF", - "dark_vs": "punctuation.definition.template-expression.begin: #569CD6", - "light_vs": "punctuation.definition.template-expression.begin: #0000FF", - "hc_black": "punctuation.definition.template-expression.begin: #569CD6" - } - }, - { - "c": "startTime", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.end: #569CD6", - "light_plus": "punctuation.definition.template-expression.end: #0000FF", - "dark_vs": "punctuation.definition.template-expression.end: #569CD6", - "light_vs": "punctuation.definition.template-expression.end: #0000FF", - "hc_black": "punctuation.definition.template-expression.end: #569CD6" - } - }, - { - "c": " - ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.begin: #569CD6", - "light_plus": "punctuation.definition.template-expression.begin: #0000FF", - "dark_vs": "punctuation.definition.template-expression.begin: #569CD6", - "light_vs": "punctuation.definition.template-expression.begin: #0000FF", - "hc_black": "punctuation.definition.template-expression.begin: #569CD6" - } - }, - { - "c": "endTime", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.end: #569CD6", - "light_plus": "punctuation.definition.template-expression.end: #0000FF", - "dark_vs": "punctuation.definition.template-expression.end: #569CD6", - "light_vs": "punctuation.definition.template-expression.end: #0000FF", - "hc_black": "punctuation.definition.template-expression.end: #569CD6" - } - }, - { - "c": "`", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.function.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.ts meta.function.ts meta.block.ts constant.language.boolean.true.ts", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-issue5465_ts.json b/extensions/typescript-basics/test/colorize-results/test-issue5465_ts.json deleted file mode 100644 index 717e252e429..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-issue5465_ts.json +++ /dev/null @@ -1,288 +0,0 @@ -[ - { - "c": "function", - "t": "source.ts meta.function.ts storage.type.function.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "*", - "t": "source.ts meta.function.ts keyword.generator.asterisk.ts", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo2", - "t": "source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "yield", - "t": "source.ts meta.function.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "bar", - "t": "source.ts meta.function.ts meta.block.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "yield", - "t": "source.ts meta.function.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "*", - "t": "source.ts meta.function.ts meta.block.ts keyword.generator.asterisk.ts", - "r": { - "dark_plus": "keyword: #569CD6", - "light_plus": "keyword: #0000FF", - "dark_vs": "keyword: #569CD6", - "light_vs": "keyword: #0000FF", - "hc_black": "keyword: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.array.literal.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "bar", - "t": "source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.array.literal.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.ts meta.function.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.function.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-issue5566_ts.json b/extensions/typescript-basics/test/colorize-results/test-issue5566_ts.json deleted file mode 100644 index c7c430d7632..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-issue5566_ts.json +++ /dev/null @@ -1,409 +0,0 @@ -[ - { - "c": "function", - "t": "source.ts meta.function.ts storage.type.function.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo3", - "t": "source.ts meta.function.ts meta.definition.function.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.function.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.function.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "const", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.constant.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "any", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts meta.return.type.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "bar", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ":", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "baz", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.function.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.function.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-jsdoc-multiline-type_ts.json b/extensions/typescript-basics/test/colorize-results/test-jsdoc-multiline-type_ts.json deleted file mode 100644 index cc1eba5f197..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-jsdoc-multiline-type_ts.json +++ /dev/null @@ -1,684 +0,0 @@ -[ - { - "c": "/**", - "t": "source.ts comment.block.documentation.ts punctuation.definition.comment.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "typedef", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "{", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " id: number,", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " fn: !Function,", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " context: (!Object|undefined)", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " }", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "}", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " * ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "private", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.ts comment.block.documentation.ts punctuation.definition.comment.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "goog", - "t": "source.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "dom", - "t": "source.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "animationFrame", - "t": "source.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Task_", - "t": "source.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "/**", - "t": "source.ts comment.block.documentation.ts punctuation.definition.comment.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "typedef", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "{", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.begin.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "{", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " measureTask: goog.dom.animationFrame.Task_,", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " mutateTask: goog.dom.animationFrame.Task_,", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " state: (!Object|undefined),", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " args: (!Array|undefined),", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " isScheduled: boolean", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " *", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " }", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": "}", - "t": "source.ts comment.block.documentation.ts entity.name.type.instance.jsdoc punctuation.definition.bracket.curly.end.jsdoc", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " * ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "@", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc punctuation.definition.block.tag.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "private", - "t": "source.ts comment.block.documentation.ts storage.type.class.jsdoc", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts comment.block.documentation.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.ts comment.block.documentation.ts punctuation.definition.comment.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "goog", - "t": "source.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "dom", - "t": "source.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "animationFrame", - "t": "source.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "TaskSet_", - "t": "source.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-keywords_ts.json b/extensions/typescript-basics/test/colorize-results/test-keywords_ts.json deleted file mode 100644 index 2ef1c3c62c2..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-keywords_ts.json +++ /dev/null @@ -1,233 +0,0 @@ -[ - { - "c": "export", - "t": "source.ts meta.var.expr.ts keyword.control.export.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.var.expr.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.ts meta.var.expr.ts meta.arrow.ts storage.type.function.arrow.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts", - "r": { - "dark_plus": "keyword.operator.new: #569CD6", - "light_plus": "keyword.operator.new: #0000FF", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "keyword.operator.new: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "RegExp", - "t": "source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts support.class.builtin.ts", - "r": { - "dark_plus": "support.class: #4EC9B0", - "light_plus": "support.class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.class: #4EC9B0" - } - }, - { - "c": "(", - "t": "source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.var.expr.ts new.expr.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-members_ts.json b/extensions/typescript-basics/test/colorize-results/test-members_ts.json deleted file mode 100644 index d1b7974ed66..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-members_ts.json +++ /dev/null @@ -1,409 +0,0 @@ -[ - { - "c": "class", - "t": "source.ts meta.class.ts storage.type.class.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A2", - "t": "source.ts meta.class.ts entity.name.type.class.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "extends", - "t": "source.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "B1", - "t": "source.ts meta.class.ts entity.other.inherited-class.ts", - "r": { - "dark_plus": "entity.other.inherited-class: #4EC9B0", - "light_plus": "entity.other.inherited-class: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.other.inherited-class: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "count", - "t": "source.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.class.ts meta.field.declaration.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "9", - "t": "source.ts meta.class.ts meta.field.declaration.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "resolveNextGeneration", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "A2", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/typescript-basics/test/colorize-results/test-object-literals_ts.json b/extensions/typescript-basics/test/colorize-results/test-object-literals_ts.json deleted file mode 100644 index e6b11cc8d3a..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-object-literals_ts.json +++ /dev/null @@ -1,299 +0,0 @@ -[ - { - "c": "let", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "s1", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "k", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "k1", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "s", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "k2", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts meta.object-literal.key.ts punctuation.separator.key-value.ts", - "r": { - "dark_plus": "meta.object-literal.key: #9CDCFE", - "light_plus": "meta.object-literal.key: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "meta.object-literal.key: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": "\t", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts meta.object.member.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts meta.object.member.ts meta.objectliteral.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.var.expr.ts meta.objectliteral.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/typescript-basics/test/colorize-results/test-strings_ts.json b/extensions/typescript-basics/test/colorize-results/test-strings_ts.json deleted file mode 100644 index f9d401fabce..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-strings_ts.json +++ /dev/null @@ -1,574 +0,0 @@ -[ - { - "c": "var", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "`", - "t": "source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Hello ", - "t": "source.ts meta.var.expr.ts string.template.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.begin: #569CD6", - "light_plus": "punctuation.definition.template-expression.begin: #0000FF", - "dark_vs": "punctuation.definition.template-expression.begin: #569CD6", - "light_vs": "punctuation.definition.template-expression.begin: #0000FF", - "hc_black": "punctuation.definition.template-expression.begin: #569CD6" - } - }, - { - "c": "foo", - "t": "source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "}", - "t": "source.ts meta.var.expr.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.end: #569CD6", - "light_plus": "punctuation.definition.template-expression.end: #0000FF", - "dark_vs": "punctuation.definition.template-expression.end: #569CD6", - "light_vs": "punctuation.definition.template-expression.end: #0000FF", - "hc_black": "punctuation.definition.template-expression.end: #569CD6" - } - }, - { - "c": "!", - "t": "source.ts meta.var.expr.ts string.template.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "`", - "t": "source.ts meta.var.expr.ts string.template.ts punctuation.definition.string.template.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "console", - "t": "source.ts meta.function-call.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "log", - "t": "source.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "`", - "t": "source.ts string.template.ts punctuation.definition.string.template.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "string text line 1", - "t": "source.ts string.template.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "string text line 2", - "t": "source.ts string.template.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "`", - "t": "source.ts string.template.ts punctuation.definition.string.template.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ")", - "t": "source.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "x", - "t": "source.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "tag", - "t": "source.ts string.template.ts entity.name.function.tagged-template.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "`", - "t": "source.ts string.template.ts punctuation.definition.string.template.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Hello ", - "t": "source.ts string.template.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.begin: #569CD6", - "light_plus": "punctuation.definition.template-expression.begin: #0000FF", - "dark_vs": "punctuation.definition.template-expression.begin: #569CD6", - "light_vs": "punctuation.definition.template-expression.begin: #0000FF", - "hc_black": "punctuation.definition.template-expression.begin: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.end: #569CD6", - "light_plus": "punctuation.definition.template-expression.end: #0000FF", - "dark_vs": "punctuation.definition.template-expression.end: #569CD6", - "light_vs": "punctuation.definition.template-expression.end: #0000FF", - "hc_black": "punctuation.definition.template-expression.end: #569CD6" - } - }, - { - "c": " world ", - "t": "source.ts string.template.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "${", - "t": "source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.begin.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.begin: #569CD6", - "light_plus": "punctuation.definition.template-expression.begin: #0000FF", - "dark_vs": "punctuation.definition.template-expression.begin: #569CD6", - "light_vs": "punctuation.definition.template-expression.begin: #0000FF", - "hc_black": "punctuation.definition.template-expression.begin: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "a", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "b", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts string.template.ts meta.template.expression.ts meta.embedded.line.ts", - "r": { - "dark_plus": "meta.embedded: #D4D4D4", - "light_plus": "meta.embedded: #000000", - "dark_vs": "meta.embedded: #D4D4D4", - "light_vs": "meta.embedded: #000000", - "hc_black": "meta.embedded: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts string.template.ts meta.template.expression.ts punctuation.definition.template-expression.end.ts", - "r": { - "dark_plus": "punctuation.definition.template-expression.end: #569CD6", - "light_plus": "punctuation.definition.template-expression.end: #0000FF", - "dark_vs": "punctuation.definition.template-expression.end: #569CD6", - "light_vs": "punctuation.definition.template-expression.end: #0000FF", - "hc_black": "punctuation.definition.template-expression.end: #569CD6" - } - }, - { - "c": "`", - "t": "source.ts string.template.ts punctuation.definition.string.template.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/test-this_ts.json b/extensions/typescript-basics/test/colorize-results/test-this_ts.json deleted file mode 100644 index e80931da2c0..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test-this_ts.json +++ /dev/null @@ -1,123 +0,0 @@ -[ - { - "c": "{", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "9", - "t": "source.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] diff --git a/extensions/typescript-basics/test/colorize-results/test_ts.json b/extensions/typescript-basics/test/colorize-results/test_ts.json deleted file mode 100644 index 2aa299d8276..00000000000 --- a/extensions/typescript-basics/test/colorize-results/test_ts.json +++ /dev/null @@ -1,11420 +0,0 @@ -[ - { - "c": "/*", - "t": "source.ts comment.block.ts punctuation.definition.comment.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Game of Life", - "t": "source.ts comment.block.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * Implemented in TypeScript", - "t": "source.ts comment.block.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " * To learn more about TypeScript, please visit http://www.typescriptlang.org/", - "t": "source.ts comment.block.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.ts comment.block.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "*/", - "t": "source.ts comment.block.ts punctuation.definition.comment.ts", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "module", - "t": "source.ts meta.namespace.declaration.ts storage.type.namespace.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Conway", - "t": "source.ts meta.namespace.declaration.ts entity.name.type.module.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "export", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts keyword.control.export.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.type.class.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts entity.name.type.class.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "boolean", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "constructor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "boolean", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "export", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts keyword.control.export.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "class", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.type.class.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "GameOfLife", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts entity.name.type.class.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gridSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "canvasSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "lineColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "string", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "liveColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "string", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "deadColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "string", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "initialLifeProbability", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "animationRate", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "private", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "world", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.field.declaration.ts meta.definition.property.ts variable.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "constructor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gridSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "50", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "canvasSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "600", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "lineColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#cdcdcd", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "liveColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#666", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "deadColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.begin.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "#eee", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts string.quoted.single.ts punctuation.definition.string.end.ts", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "initialLifeProbability", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts meta.delimiter.decimal.period.ts", - "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" - } - }, - { - "c": "5", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "animationRate", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "60", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "world", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "createWorld", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "circleOfLife", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "createWorld", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "travelWorld", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Math", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.constant.math.ts", - "r": { - "dark_plus": "support.constant.math: #4EC9B0", - "light_plus": "support.constant.math: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.constant.math: #4EC9B0" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "random", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts support.function.math.ts", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "initialLifeProbability", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "circleOfLife", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "void", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.return.type.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "world", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "travelWorld", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "world", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "][", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "]", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "draw", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "resolveNextGeneration", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "setTimeout", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts support.function.ts", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=>", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts storage.type.function.arrow.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "circleOfLife", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.arrow.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "animationRate", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "resolveNextGeneration", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "count", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "countNeighbors", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "newCell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts", - "r": { - "dark_plus": "keyword.operator.new: #569CD6", - "light_plus": "keyword.operator.new: #0000FF", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "keyword.operator.new: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "count", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "count", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "newCell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "false", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "else", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "count", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "3", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "newCell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "true", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.true.ts", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "newCell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "countNeighbors", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "neighbors", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": "1", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": "1", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": "1", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.comparison.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&&", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.comparison.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "continue", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "isAlive", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "))", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "neighbors", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.block.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "neighbors", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "isAlive", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.separator.parameter.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "number", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts support.type.primitive.ts", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gridSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "||", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.logical.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gridSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "false", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.language.boolean.false.ts", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "world", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "[", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "][", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "]", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "travelWorld", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "callback", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "result", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[]", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gridSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rowData", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[]", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.array.literal.ts meta.brace.square.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "for", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.control.loop.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.var.expr.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.relational.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gridSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "++", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts keyword.operator.increment.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rowData", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "push", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "callback", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts keyword.operator.new.ts", - "r": { - "dark_plus": "keyword.operator.new: #569CD6", - "light_plus": "keyword.operator.new: #0000FF", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "keyword.operator.new: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "false", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts constant.language.boolean.false.ts", - "r": { - "dark_plus": "constant.language: #569CD6", - "light_plus": "constant.language: #0000FF", - "dark_vs": "constant.language: #569CD6", - "light_vs": "constant.language: #0000FF", - "hc_black": "constant.language: #569CD6" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "))", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "result", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "push", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "rowData", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "return", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.flow.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "result", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "public", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts storage.modifier.ts", - "r": { - "dark_plus": "storage.modifier: #569CD6", - "light_plus": "storage.modifier: #0000FF", - "dark_vs": "storage.modifier: #569CD6", - "light_vs": "storage.modifier: #0000FF", - "hc_black": "storage.modifier: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "draw", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.definition.method.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.begin.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts variable.parameter.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts keyword.operator.type.annotation.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts meta.type.annotation.ts entity.name.type.ts", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.parameters.ts punctuation.definition.parameters.end.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "if", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.control.conditional.ts", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "==", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.comparison.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "0", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts constant.numeric.decimal.ts", - "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" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "canvasSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "/", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "gridSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "context", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "strokeStyle", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "lineColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "context", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "strokeRect", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "*", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "context", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fillStyle", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "live", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "?", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "liveColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.ternary.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "deadColor", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "context", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts variable.other.object.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "fillRect", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "row", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cell", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "col", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "*", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts keyword.operator.arithmetic.ts", - "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" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.separator.comma.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "this", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.language.this.ts", - "r": { - "dark_plus": "variable.language: #569CD6", - "light_plus": "variable.language: #0000FF", - "dark_vs": "variable.language: #569CD6", - "light_vs": "variable.language: #0000FF", - "hc_black": "variable.language.this: #569CD6" - } - }, - { - "c": ".", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "cellSize", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts variable.other.property.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts meta.method.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts meta.class.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.ts meta.namespace.declaration.ts meta.block.ts punctuation.definition.block.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "var", - "t": "source.ts meta.var.expr.ts storage.type.ts", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "game", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts meta.definition.variable.ts variable.other.readwrite.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts meta.var-single-variable.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.ts meta.var.expr.ts keyword.operator.assignment.ts", - "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" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "new", - "t": "source.ts meta.var.expr.ts new.expr.ts keyword.operator.new.ts", - "r": { - "dark_plus": "keyword.operator.new: #569CD6", - "light_plus": "keyword.operator.new: #0000FF", - "dark_vs": "keyword.operator.new: #569CD6", - "light_vs": "keyword.operator.new: #0000FF", - "hc_black": "keyword.operator.new: #569CD6" - } - }, - { - "c": " ", - "t": "source.ts meta.var.expr.ts new.expr.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Conway", - "t": "source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts variable.other.object.ts", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ".", - "t": "source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts punctuation.accessor.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "GameOfLife", - "t": "source.ts meta.var.expr.ts new.expr.ts meta.function-call.ts entity.name.function.ts", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "()", - "t": "source.ts meta.var.expr.ts new.expr.ts meta.brace.round.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ";", - "t": "source.ts punctuation.terminator.statement.ts", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/typescript-basics/test/colorize-results/tsconfig_off_json.json b/extensions/typescript-basics/test/colorize-results/tsconfig_off_json.json deleted file mode 100644 index 13700965aba..00000000000 --- a/extensions/typescript-basics/test/colorize-results/tsconfig_off_json.json +++ /dev/null @@ -1,222 +0,0 @@ -[ - { - "c": "{", - "t": "source.json meta.structure.dictionary.json punctuation.definition.dictionary.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t", - "t": "source.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "compilerOptions", - "t": "source.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json punctuation.definition.dictionary.begin.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\t\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.begin.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "target", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json string.json support.type.property-name.json punctuation.support.type.property-name.end.json", - "r": { - "dark_plus": "support.type.property-name: #9CDCFE", - "light_plus": "support.type.property-name.json: #0451A5", - "dark_vs": "support.type.property-name: #9CDCFE", - "light_vs": "support.type.property-name.json: #0451A5", - "hc_black": "support.type.property-name: #D4D4D4" - } - }, - { - "c": ":", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json punctuation.separator.dictionary.key-value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json punctuation.definition.string.begin.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "es6", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json string.quoted.double.json punctuation.definition.string.end.json", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string: #A31515", - "dark_vs": "string: #CE9178", - "light_vs": "string: #A31515", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\t", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json meta.structure.dictionary.value.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.json meta.structure.dictionary.json meta.structure.dictionary.value.json meta.structure.dictionary.json punctuation.definition.dictionary.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "}", - "t": "source.json meta.structure.dictionary.json punctuation.definition.dictionary.end.json", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - } -] \ No newline at end of file diff --git a/extensions/vb/.vscodeignore b/extensions/vb/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/vb/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/vb/cgmanifest.json b/extensions/vb/cgmanifest.json deleted file mode 100644 index 23523f36abb..00000000000 --- a/extensions/vb/cgmanifest.json +++ /dev/null @@ -1,32 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "textmate/asp.vb.net.tmbundle", - "repositoryUrl": "https://github.com/textmate/asp.vb.net.tmbundle", - "commitHash": "72d44550b3286d0382d7be0624140cf97857ff69" - } - }, - "licenseDetail": [ - "Copyright (c) textmate-asp.vb.net.tmbundle project authors", - "", - "If not otherwise specified (see below), files in this folder fall under the following license: ", - "", - "Permission to copy, use, modify, sell and distribute this", - "software is granted. This software is provided \"as is\" without", - "express or implied warranty, and with no claim as to its", - "suitability for any purpose.", - "", - "An exception is made for files in readable text which contain their own license information, ", - "or files where an accompanying file exists (in the same directory) with a \"-license\" suffix added ", - "to the base-name name of the original file, and an extension of txt, html, or similar. For example ", - "\"tidy\" is accompanied by \"tidy-license.txt\"." - ], - "license": "TextMate Bundle License", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/vb/language-configuration.json b/extensions/vb/language-configuration.json deleted file mode 100644 index a31b67bec0f..00000000000 --- a/extensions/vb/language-configuration.json +++ /dev/null @@ -1,30 +0,0 @@ -{ - "comments": { - "lineComment": "'" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["<", ">"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - { "open": "\"", "close": "\"", "notIn": ["string"] } - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["<", ">"] - ], - "folding": { - "markers": { - "start": "^\\s*#Region\\b", - "end": "^\\s*#End Region\\b" - } - } -} diff --git a/extensions/vb/package.json b/extensions/vb/package.json deleted file mode 100644 index 29e3cceedb6..00000000000 --- a/extensions/vb/package.json +++ /dev/null @@ -1,29 +0,0 @@ -{ - "name": "vb", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js textmate/asp.vb.net.tmbundle Syntaxes/ASP%20VB.net.plist ./syntaxes/asp-vb-net.tmlanguage.json" - }, - "contributes": { - "languages": [{ - "id": "vb", - "extensions": [ ".vb", ".brs", ".vbs", ".bas" ], - "aliases": [ "Visual Basic", "vb" ], - "configuration": "./language-configuration.json" - }], - "grammars": [{ - "language": "vb", - "scopeName": "source.asp.vb.net", - "path": "./syntaxes/asp-vb-net.tmlanguage.json" - }], - "snippets": [{ - "language": "vb", - "path": "./snippets/vb.code-snippets" - }] - } -} diff --git a/extensions/vb/package.nls.json b/extensions/vb/package.nls.json deleted file mode 100644 index 45bed3ab41f..00000000000 --- a/extensions/vb/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "Visual Basic Language Basics", - "description": "Provides snippets, syntax highlighting, bracket matching and folding in Visual Basic files." -} \ No newline at end of file diff --git a/extensions/vb/snippets/vb.code-snippets b/extensions/vb/snippets/vb.code-snippets deleted file mode 100644 index 447b43b0581..00000000000 --- a/extensions/vb/snippets/vb.code-snippets +++ /dev/null @@ -1,86 +0,0 @@ -{ - "For Next Loop": { - "prefix": "for", - "body": [ - "For ${1:index} As ${2:ObjectType} = ${3:lower} To ${4:Upper}", - "\t$0", - "Next ${1:index}" - ], - "description": "For Next Loop" - }, - "For Each...Next": { - "prefix": "fore", - "body": [ - "For Each ${1:Variable} As ${2:ObjectType} In ${3:Collection}", - "\t$0", - "Next" - ], - "description": "For Each...Next" - }, - "For i...Next i": { - "prefix": "fori", - "body": [ - "For i As ${1:Integer} = ${2:Lower} To ${3:Upper}", - "\t$0", - "Next i" - ], - "description": "For i...Next i" - }, - "For j...Next j": { - "prefix": "forj", - "body": [ - "For j As ${1:Integer} = ${2:Lower} To ${3:Upper}", - "\t$0", - "Next j" - ], - "description": "For j...Next j" - }, - "Public Function...": { - "prefix": "pf", - "body": [ - "Public Function ${1:FunctionName}(${2:ParameterList}) As ${3:ReturnType}", - "\tTry", - "\t\t$0", - "\tCatch ex As Exception", - "\tEnd Try", - "\tReturn ${3:ReturnValue}", - "End Function" - ], - "description": "Public Function..." - }, - "Public Sub ...": { - "prefix": "ps", - "body": [ - "Public Sub ${1:ProcedureName}(${2:ParameterList})", - "\tTry", - "\t\t$0", - "\tCatch ex As Exception", - "\tEnd Try", - "End Sub" - ], - "description": "Public Sub ..." - }, - "While ... End While": { - "prefix": "while", - "body": [ - "While ${1:Boolean}", - "\t$0", - "End While" - ], - "description": "While ... End While" - }, - "Region Start": { - "prefix": "#Region", - "body": [ - "#Region $0" - ], - "description": "Folding Region Start" - }, - "Region End": { - "prefix": "#End Region", - "body": [ - "#End Region" - ], - "description": "Folding Region End" - } -} diff --git a/extensions/vb/syntaxes/asp-vb-net.tmlanguage.json b/extensions/vb/syntaxes/asp-vb-net.tmlanguage.json deleted file mode 100644 index 262f9c9750b..00000000000 --- a/extensions/vb/syntaxes/asp-vb-net.tmlanguage.json +++ /dev/null @@ -1,238 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/asp.vb.net.tmbundle/blob/master/Syntaxes/ASP%20VB.net.plist", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/asp.vb.net.tmbundle/commit/72d44550b3286d0382d7be0624140cf97857ff69", - "name": "ASP vb.NET", - "scopeName": "source.asp.vb.net", - "comment": "Modified from the original ASP bundle. Originally modified by Thomas Aylott subtleGradient.com", - "patterns": [ - { - "match": "\\n", - "name": "meta.ending-space" - }, - { - "include": "#round-brackets" - }, - { - "begin": "^(?=\\t)", - "end": "(?=[^\\t])", - "name": "meta.leading-space", - "patterns": [ - { - "captures": { - "1": { - "name": "meta.odd-tab.tabs" - }, - "2": { - "name": "meta.even-tab.tabs" - } - }, - "match": "(\\t)(\\t)?" - } - ] - }, - { - "begin": "^(?= )", - "end": "(?=[^ ])", - "name": "meta.leading-space", - "patterns": [ - { - "captures": { - "1": { - "name": "meta.odd-tab.spaces" - }, - "2": { - "name": "meta.even-tab.spaces" - } - }, - "match": "( )( )?" - } - ] - }, - { - "captures": { - "1": { - "name": "storage.type.function.asp" - }, - "2": { - "name": "entity.name.function.asp" - }, - "3": { - "name": "punctuation.definition.parameters.asp" - }, - "4": { - "name": "variable.parameter.function.asp" - }, - "5": { - "name": "punctuation.definition.parameters.asp" - } - }, - "match": "^\\s*((?i:function|sub))\\s*([a-zA-Z_]\\w*)\\s*(\\()([^)]*)(\\)).*\\n?", - "name": "meta.function.asp" - }, - { - "begin": "(^[ \\t]+)?(?=')", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.asp" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.asp" - } - }, - "end": "\\n", - "name": "comment.line.apostrophe.asp" - } - ] - }, - { - "match": "(?i:\\b(If|Then|Else|ElseIf|Else If|End If|While|Wend|For|To|Each|Case|Select|End Select|Return|Continue|Do|Until|Loop|Next|With|Exit Do|Exit For|Exit Function|Exit Property|Exit Sub|IIf)\\b)", - "name": "keyword.control.asp" - }, - { - "match": "(?i:\\b(Mod|And|Not|Or|Xor|as)\\b)", - "name": "keyword.operator.asp" - }, - { - "captures": { - "1": { - "name": "storage.type.asp" - }, - "2": { - "name": "variable.other.bfeac.asp" - }, - "3": { - "name": "meta.separator.comma.asp" - } - }, - "match": "(?i:(dim)\\s*(?:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)\\s*(,?)))", - "name": "variable.other.dim.asp" - }, - { - "match": "(?i:\\s*\\b(Call|Class|Const|Dim|Redim|Function|Sub|Private Sub|Public Sub|End Sub|End Function|End Class|End Property|Public Property|Private Property|Set|Let|Get|New|Randomize|Option Explicit|On Error Resume Next|On Error GoTo)\\b\\s*)", - "name": "storage.type.asp" - }, - { - "match": "(?i:\\b(Private|Public|Default)\\b)", - "name": "storage.modifier.asp" - }, - { - "match": "(?i:\\s*\\b(Empty|False|Nothing|Null|True)\\b)", - "name": "constant.language.asp" - }, - { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.asp" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.asp" - } - }, - "name": "string.quoted.double.asp", - "patterns": [ - { - "match": "\"\"", - "name": "constant.character.escape.apostrophe.asp" - } - ] - }, - { - "captures": { - "1": { - "name": "punctuation.definition.variable.asp" - } - }, - "match": "(\\$)[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b\\s*", - "name": "variable.other.asp" - }, - { - "match": "(?i:\\b(Application|ObjectContext|Request|Response|Server|Session)\\b)", - "name": "support.class.asp" - }, - { - "match": "(?i:\\b(Contents|StaticObjects|ClientCertificate|Cookies|Form|QueryString|ServerVariables)\\b)", - "name": "support.class.collection.asp" - }, - { - "match": "(?i:\\b(TotalBytes|Buffer|CacheControl|Charset|ContentType|Expires|ExpiresAbsolute|IsClientConnected|PICS|Status|ScriptTimeout|CodePage|LCID|SessionID|Timeout)\\b)", - "name": "support.constant.asp" - }, - { - "match": "(?i:\\b(Lock|Unlock|SetAbort|SetComplete|BinaryRead|AddHeader|AppendToLog|BinaryWrite|Clear|End|Flush|Redirect|Write|CreateObject|HTMLEncode|MapPath|URLEncode|Abandon|Convert|Regex)\\b)", - "name": "support.function.asp" - }, - { - "match": "(?i:\\b(Application_OnEnd|Application_OnStart|OnTransactionAbort|OnTransactionCommit|Session_OnEnd|Session_OnStart)\\b)", - "name": "support.function.event.asp" - }, - { - "match": "(?i:(?<=as )(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b))", - "name": "support.type.vb.asp" - }, - { - "match": "(?i:\\b(Array|Add|Asc|Atn|CBool|CByte|CCur|CDate|CDbl|Chr|CInt|CLng|Conversions|Cos|CreateObject|CSng|CStr|Date|DateAdd|DateDiff|DatePart|DateSerial|DateValue|Day|Derived|Math|Escape|Eval|Exists|Exp|Filter|FormatCurrency|FormatDateTime|FormatNumber|FormatPercent|GetLocale|GetObject|GetRef|Hex|Hour|InputBox|InStr|InStrRev|Int|Fix|IsArray|IsDate|IsEmpty|IsNull|IsNumeric|IsObject|Item|Items|Join|Keys|LBound|LCase|Left|Len|LoadPicture|Log|LTrim|RTrim|Trim|Maths|Mid|Minute|Month|MonthName|MsgBox|Now|Oct|Remove|RemoveAll|Replace|RGB|Right|Rnd|Round|ScriptEngine|ScriptEngineBuildVersion|ScriptEngineMajorVersion|ScriptEngineMinorVersion|Second|SetLocale|Sgn|Sin|Space|Split|Sqr|StrComp|String|StrReverse|Tan|Time|Timer|TimeSerial|TimeValue|TypeName|UBound|UCase|Unescape|VarType|Weekday|WeekdayName|Year)\\b)", - "name": "support.function.vb.asp" - }, - { - "match": "-?\\b((0(x|X)[0-9a-fA-F]*)|(([0-9]+\\.?[0-9]*)|(\\.[0-9]+))((e|E)(\\+|-)?[0-9]+)?)(L|l|UL|ul|u|U|F|f)?\\b", - "name": "constant.numeric.asp" - }, - { - "match": "(?i:\\b(vbtrue|vbfalse|vbcr|vbcrlf|vbformfeed|vblf|vbnewline|vbnullchar|vbnullstring|int32|vbtab|vbverticaltab|vbbinarycompare|vbtextcomparevbsunday|vbmonday|vbtuesday|vbwednesday|vbthursday|vbfriday|vbsaturday|vbusesystemdayofweek|vbfirstjan1|vbfirstfourdays|vbfirstfullweek|vbgeneraldate|vblongdate|vbshortdate|vblongtime|vbshorttime|vbobjecterror|vbEmpty|vbNull|vbInteger|vbLong|vbSingle|vbDouble|vbCurrency|vbDate|vbString|vbObject|vbError|vbBoolean|vbVariant|vbDataObject|vbDecimal|vbByte|vbArray)\\b)", - "name": "support.type.vb.asp" - }, - { - "captures": { - "1": { - "name": "entity.name.function.asp" - } - }, - "match": "(?i:(\\b[a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?\\b)(?=\\(\\)?))", - "name": "support.function.asp" - }, - { - "match": "(?i:((?<=(\\+|=|-|\\&|\\\\|/|<|>|\\(|,))\\s*\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?!(\\(|\\.))|\\b([a-zA-Z_x7f-xff][a-zA-Z0-9_x7f-xff]*?)\\b(?=\\s*(\\+|=|-|\\&|\\\\|/|<|>|\\(|\\)))))", - "name": "variable.other.asp" - }, - { - "match": "!|\\$|%|&|\\*|\\-\\-|\\-|\\+\\+|\\+|~|===|==|=|!=|!==|<=|>=|<<=|>>=|>>>=|<>|<|>|!|&&|\\|\\||\\?\\:|\\*=|/=|%=|\\+=|\\-=|&=|\\^=|\\b(in|instanceof|new|delete|typeof|void)\\b", - "name": "keyword.operator.js" - } - ], - "repository": { - "round-brackets": { - "begin": "\\(", - "beginCaptures": { - "0": { - "name": "punctuation.section.round-brackets.begin.asp" - } - }, - "end": "\\)", - "endCaptures": { - "0": { - "name": "punctuation.section.round-brackets.end.asp" - } - }, - "name": "meta.round-brackets", - "patterns": [ - { - "include": "source.asp.vb.net" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/vb/test/colorize-fixtures/test.vb b/extensions/vb/test/colorize-fixtures/test.vb deleted file mode 100644 index 6e6ac8a4507..00000000000 --- a/extensions/vb/test/colorize-fixtures/test.vb +++ /dev/null @@ -1,25 +0,0 @@ -' Copyright (c) Microsoft Corporation. All rights reserved. - -Public Sub LongTask(ByVal Duration As Single, _ - ByVal MinimumInterval As Single) - Dim Threshold As Single - Dim Start As Single - Dim blnCancel As Boolean - - ' The Timer property of the DateAndTime object returns the seconds - ' and milliseconds that have passed since midnight. - Start = CSng(Timer) - Threshold = MinimumInterval - - Do While CSng(Timer)< (Start + Duration) - ' In a real application, some unit of work would - ' be done here each time through the loop. - If CSng(Timer)> (Start + Threshold) Then - RaiseEvent PercentDone( _ - Threshold / Duration, blnCancel) - ' Check to see if the operation was canceled. - If blnCancel Then Exit Sub - Threshold = Threshold + MinimumInterval - End If - Loop -End Sub \ No newline at end of file diff --git a/extensions/vb/test/colorize-results/test_vb.json b/extensions/vb/test/colorize-results/test_vb.json deleted file mode 100644 index ee27f71ae6c..00000000000 --- a/extensions/vb/test/colorize-results/test_vb.json +++ /dev/null @@ -1,2180 +0,0 @@ -[ - { - "c": "'", - "t": "source.asp.vb.net comment.line.apostrophe.asp punctuation.definition.comment.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Copyright (c) Microsoft Corporation. All rights reserved.", - "t": "source.asp.vb.net comment.line.apostrophe.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "Public Sub ", - "t": "source.asp.vb.net storage.type.asp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": "LongTask", - "t": "source.asp.vb.net support.function.asp entity.name.function.asp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.begin.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ByVal", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " Duration ", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "As", - "t": "source.asp.vb.net meta.round-brackets keyword.operator.asp", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Single", - "t": "source.asp.vb.net meta.round-brackets support.type.vb.asp", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ",", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " _", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "ByVal MinimumInterval ", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "As", - "t": "source.asp.vb.net meta.round-brackets keyword.operator.asp", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Single", - "t": "source.asp.vb.net meta.round-brackets support.type.vb.asp", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": ")", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.end.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Dim", - "t": "source.asp.vb.net variable.other.dim.asp storage.type.asp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.asp.vb.net variable.other.dim.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "Threshold", - "t": "source.asp.vb.net variable.other.dim.asp variable.other.bfeac.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net variable.other.dim.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "As", - "t": "source.asp.vb.net keyword.operator.asp", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Single", - "t": "source.asp.vb.net support.type.vb.asp", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Dim", - "t": "source.asp.vb.net variable.other.dim.asp storage.type.asp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.asp.vb.net variable.other.dim.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "Start", - "t": "source.asp.vb.net variable.other.dim.asp variable.other.bfeac.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net variable.other.dim.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "As", - "t": "source.asp.vb.net keyword.operator.asp", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Single", - "t": "source.asp.vb.net support.type.vb.asp", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Dim", - "t": "source.asp.vb.net variable.other.dim.asp storage.type.asp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - }, - { - "c": " ", - "t": "source.asp.vb.net variable.other.dim.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "blnCancel", - "t": "source.asp.vb.net variable.other.dim.asp variable.other.bfeac.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net variable.other.dim.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "As", - "t": "source.asp.vb.net keyword.operator.asp", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Boolean", - "t": "source.asp.vb.net support.type.vb.asp", - "r": { - "dark_plus": "support.type: #4EC9B0", - "light_plus": "support.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.asp.vb.net comment.line.apostrophe.asp punctuation.definition.comment.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " The Timer property of the DateAndTime object returns the seconds", - "t": "source.asp.vb.net comment.line.apostrophe.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.asp.vb.net comment.line.apostrophe.asp punctuation.definition.comment.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " and milliseconds that have passed since midnight.", - "t": "source.asp.vb.net comment.line.apostrophe.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Start", - "t": "source.asp.vb.net variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.asp.vb.net keyword.operator.js", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "CSng", - "t": "source.asp.vb.net support.function.vb.asp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.begin.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Timer", - "t": "source.asp.vb.net meta.round-brackets support.function.vb.asp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ")", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.end.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Threshold", - "t": "source.asp.vb.net variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.asp.vb.net keyword.operator.js", - "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" - } - }, - { - "c": " MinimumInterval", - "t": "source.asp.vb.net variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Do", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "While", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "CSng", - "t": "source.asp.vb.net support.function.vb.asp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.begin.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Timer", - "t": "source.asp.vb.net meta.round-brackets support.function.vb.asp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ")", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.end.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "source.asp.vb.net keyword.operator.js", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.begin.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Start", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.asp.vb.net meta.round-brackets keyword.operator.js", - "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" - } - }, - { - "c": " Duration", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.end.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.asp.vb.net comment.line.apostrophe.asp punctuation.definition.comment.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " In a real application, some unit of work would", - "t": "source.asp.vb.net comment.line.apostrophe.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.asp.vb.net comment.line.apostrophe.asp punctuation.definition.comment.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " be done here each time through the loop.", - "t": "source.asp.vb.net comment.line.apostrophe.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "If", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "CSng", - "t": "source.asp.vb.net support.function.vb.asp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.begin.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Timer", - "t": "source.asp.vb.net meta.round-brackets support.function.vb.asp", - "r": { - "dark_plus": "support.function: #DCDCAA", - "light_plus": "support.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "support.function: #DCDCAA" - } - }, - { - "c": ")", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.end.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ">", - "t": "source.asp.vb.net keyword.operator.js", - "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" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "(", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.begin.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Start", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.asp.vb.net meta.round-brackets keyword.operator.js", - "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" - } - }, - { - "c": " Threshold", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.end.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Then", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "RaiseEvent ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "PercentDone", - "t": "source.asp.vb.net support.function.asp entity.name.function.asp", - "r": { - "dark_plus": "entity.name.function: #DCDCAA", - "light_plus": "entity.name.function: #795E26", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.function: #DCDCAA" - } - }, - { - "c": "(", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.begin.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " _", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.round-brackets meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Threshold", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " /", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " Duration", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ",", - "t": "source.asp.vb.net meta.round-brackets", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " blnCancel", - "t": "source.asp.vb.net meta.round-brackets variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": ")", - "t": "source.asp.vb.net meta.round-brackets punctuation.section.round-brackets.end.asp", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.asp.vb.net comment.line.apostrophe.asp punctuation.definition.comment.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " Check to see if the operation was canceled.", - "t": "source.asp.vb.net comment.line.apostrophe.asp", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "If", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " blnCancel ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Then", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Exit Sub", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Threshold", - "t": "source.asp.vb.net variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "=", - "t": "source.asp.vb.net keyword.operator.js", - "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" - } - }, - { - "c": " Threshold", - "t": "source.asp.vb.net variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "+", - "t": "source.asp.vb.net keyword.operator.js", - "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" - } - }, - { - "c": " MinimumInterval", - "t": "source.asp.vb.net variable.other.asp", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "End If", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.odd-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space meta.even-tab.spaces", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.asp.vb.net meta.leading-space", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Loop", - "t": "source.asp.vb.net keyword.control.asp", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "End Sub", - "t": "source.asp.vb.net storage.type.asp", - "r": { - "dark_plus": "storage.type: #569CD6", - "light_plus": "storage.type: #0000FF", - "dark_vs": "storage.type: #569CD6", - "light_vs": "storage.type: #0000FF", - "hc_black": "storage.type: #569CD6" - } - } -] \ No newline at end of file diff --git a/extensions/vscode-colorize-tests/.gitignore b/extensions/vscode-colorize-tests/.gitignore deleted file mode 100644 index 8e5962ee727..00000000000 --- a/extensions/vscode-colorize-tests/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -out -node_modules \ No newline at end of file diff --git a/extensions/vscode-colorize-tests/.vscode/launch.json b/extensions/vscode-colorize-tests/.vscode/launch.json deleted file mode 100644 index 73c3753c75c..00000000000 --- a/extensions/vscode-colorize-tests/.vscode/launch.json +++ /dev/null @@ -1,17 +0,0 @@ -// A launch configuration that compiles the extension and then opens it inside a new window -{ - "version": "0.1.0", - "configurations": [ - { - "name": "Launch Tests", - "type": "extensionHost", - "request": "launch", - "runtimeExecutable": "${execPath}", - "args": ["${workspaceFolder}/../../", "${workspaceFolder}/test", "--extensionDevelopmentPath=${workspaceFolder}", "--extensionTestsPath=${workspaceFolder}/out" ], - "stopOnEntry": false, - "sourceMaps": true, - "outDir": "${workspaceFolder}/out", - "preLaunchTask": "npm" - } - ] -} \ No newline at end of file diff --git a/extensions/vscode-colorize-tests/.vscode/tasks.json b/extensions/vscode-colorize-tests/.vscode/tasks.json deleted file mode 100644 index 390a93a3a7f..00000000000 --- a/extensions/vscode-colorize-tests/.vscode/tasks.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "version": "2.0.0", - "command": "npm", - "type": "shell", - "presentation": { - "reveal": "silent" - }, - "args": ["run", "compile"], - "isBackground": true, - "problemMatcher": "$tsc-watch" -} diff --git a/extensions/vscode-colorize-tests/package.json b/extensions/vscode-colorize-tests/package.json deleted file mode 100644 index 30c728cfb4e..00000000000 --- a/extensions/vscode-colorize-tests/package.json +++ /dev/null @@ -1,56 +0,0 @@ -{ - "name": "vscode-colorize-tests", - "description": "Colorize tests for VS Code", - "version": "0.0.1", - "publisher": "vscode", - "license": "MIT", - "private": true, - "activationEvents": [ - "onLanguage:json" - ], - "main": "./out/colorizerTestMain", - "enableProposedApi": true, - "engines": { - "vscode": "*" - }, - "scripts": { - "vscode:prepublish": "node ../../node_modules/gulp/bin/gulp.js --gulpfile ../../build/gulpfile.extensions.js compile-extension:vscode-colorize-tests ./tsconfig.json" - }, - "dependencies": { - "jsonc-parser": "2.2.1" - }, - "devDependencies": { - "@types/node": "^12.19.9" - }, - "contributes": { - "semanticTokenTypes": [ - { - "id": "testToken", - "description": "A test token" - } - ], - "semanticTokenModifiers": [ - { - "id": "testModifier", - "description": "A test modifier" - } - ], - "semanticTokenScopes": [ - { - "scopes": { - "testToken": [ - "entity.name.function.special" - ] - } - } - ], - "productIconThemes": [ - { - "id": "Test Product Icons", - "label": "The Test Product Icon Theme", - "path": "./producticons/test-product-icon-theme.json", - "_watch": true - } - ] - } -} diff --git a/extensions/vscode-colorize-tests/producticons/ElegantIcons.woff b/extensions/vscode-colorize-tests/producticons/ElegantIcons.woff deleted file mode 100644 index 393305253e5fc01d3369b4cf2735b08929432f96..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 63664 zcmaf(b9Cllv%qWH_SSZ{-g0Z(wr#uJVvDV9+qU1@erwykz4!0?oi8VIGV?o=OeT3w zp2;Nc^5Ww1Dk}0IAkVcR@E{-{U~~o`px@j7XAuz>CjkKgg#iJ%O#uNTb#mbTm=G6N zkp%&{%l&r8`xXK-hs7`nQ8Dpv*7V}Teb`fv6c+ZsB6 zfZWr62UP|E0k^v=Y?rh!H8cSMc?|gWVg44*PpA?Ui*NYNYQJrgZ=rxd`P#Rzb@BLS zv)}gS_x@`*(^%-Xh92L?d-`8LsQ(pED+LfcLtE2t*7|Lqf1i85ZLh4VgT1rMcfN(+ z4B=ZyK)^vjJTeb_VSQA@mh2a0?I}n@(&7T*Niu|1>T9n;#A1S|_en^|SQ#M{Sy-bG zq5{@2TyibQBY99LVnCwJmP({bX?&iZ9YxEjqp(vk`}f$*Cr@>$cD6pO~u497uZH7 z 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 z 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 - - - - Your Font/Glyphs - - - - - - -
-
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
- -
- -
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
- - -
-
-
-
-
-

Class Names

-
- - -  arrow_up - - - -  arrow_down - - - -  arrow_left - - - -  arrow_right - - - -  arrow_left-up - - - -  arrow_right-up - - - -  arrow_right-down - - - -  arrow_left-down - - - -  arrow-up-down - - - -  arrow_up-down_alt - - - -  arrow_left-right_alt - - - -  arrow_left-right - - - -  arrow_expand_alt2 - - - -  arrow_expand_alt - - - -  arrow_condense - - - -  arrow_expand - - - -  arrow_move - - - -  arrow_carrot-up - - - -  arrow_carrot-down - - - -  arrow_carrot-left - - - -  arrow_carrot-right - - - -  arrow_carrot-2up - - - -  arrow_carrot-2down - - - -  arrow_carrot-2left - - - -  arrow_carrot-2right - - - -  arrow_carrot-up_alt2 - - - -  arrow_carrot-down_alt2 - - - -  arrow_carrot-left_alt2 - - - -  arrow_carrot-right_alt2 - - - -  arrow_carrot-2up_alt2 - - - -  arrow_carrot-2down_alt2 - - - -  arrow_carrot-2left_alt2 - - - -  arrow_carrot-2right_alt2 - - - -  arrow_triangle-up - - - -  arrow_triangle-down - - - -  arrow_triangle-left - - - -  arrow_triangle-right - - - -  arrow_triangle-up_alt2 - - - -  arrow_triangle-down_alt2 - - - -  arrow_triangle-left_alt2 - - - -  arrow_triangle-right_alt2 - - - -  arrow_back - - - -  icon_minus-06 - - - -  icon_plus - - - -  icon_close - - - -  icon_check - - - -  icon_minus_alt2 - - - -  icon_plus_alt2 - - - -  icon_close_alt2 - - - -  icon_check_alt2 - - - -  icon_zoom-out_alt - - - -  icon_zoom-in_alt - - - -  icon_search - - - -  icon_box-empty - - - -  icon_box-selected - - - -  icon_minus-box - - - -  icon_plus-box - - - -  icon_box-checked - - - -  icon_circle-empty - - - -  icon_circle-slelected - - - -  icon_stop_alt2 - - - -  icon_stop - - - -  icon_pause_alt2 - - - -  icon_pause - - - -  icon_menu - - - -  icon_menu-square_alt2 - - - -  icon_menu-circle_alt2 - - - -  icon_ul - - - -  icon_ol - - - -  icon_adjust-horiz - - - -  icon_adjust-vert - - - -  icon_document_alt - - - -  icon_documents_alt - - - -  icon_pencil - - - -  icon_pencil-edit_alt - - - -  icon_pencil-edit - - - -  icon_folder-alt - - - -  icon_folder-open_alt - - - -  icon_folder-add_alt - - - -  icon_info_alt - - - -  icon_error-oct_alt - - - -  icon_error-circle_alt - - - -  icon_error-triangle_alt - - - -  icon_question_alt2 - - - -  icon_question - - - -  icon_comment_alt - - - -  icon_chat_alt - - - -  icon_vol-mute_alt - - - -  icon_volume-low_alt - - - -  icon_volume-high_alt - - - -  icon_quotations - - - -  icon_quotations_alt2 - - - -  icon_clock_alt - - - -  icon_lock_alt - - - -  icon_lock-open_alt - - - -  icon_key_alt - - - -  icon_cloud_alt - - - -  icon_cloud-upload_alt - - - -  icon_cloud-download_alt - - - -  icon_image - - - -  icon_images - - - -  icon_lightbulb_alt - - - -  icon_gift_alt - - - -  icon_house_alt - - - -  icon_genius - - - -  icon_mobile - - - -  icon_tablet - - - -  icon_laptop - - - -  icon_desktop - - - -  icon_camera_alt - - - -  icon_mail_alt - - - -  icon_cone_alt - - - -  icon_ribbon_alt - - - -  icon_bag_alt - - - -  icon_creditcard - - - -  icon_cart_alt - - - -  icon_paperclip - - - -  icon_tag_alt - - - -  icon_tags_alt - - - -  icon_trash_alt - - - -  icon_cursor_alt - - - -  icon_mic_alt - - - -  icon_compass_alt - - - -  icon_pin_alt - - - -  icon_pushpin_alt - - - -  icon_map_alt - - - -  icon_drawer_alt - - - -  icon_toolbox_alt - - - -  icon_book_alt - - - -  icon_calendar - - - -  icon_film - - - -  icon_table - - - -  icon_contacts_alt - - - -  icon_headphones - - - -  icon_lifesaver - - - -  icon_piechart - - - -  icon_refresh - - - -  icon_link_alt - - - -  icon_link - - - -  icon_loading - - - -  icon_blocked - - - -  icon_archive_alt - - - -  icon_heart_alt - - -
- - - -  icon_printer - - - -  icon_calulator - - - -  icon_building - - - -  icon_floppy - - - -  icon_drive - - - -  icon_search-2 - - - -  icon_id - - - -  icon_id-2 - - - -  icon_puzzle - - - -  icon_like - - - -  icon_dislike - - - -  icon_mug - - - -  icon_currency - - - -  icon_wallet - - - -  icon_pens - - - -  icon_easel - - - -  icon_flowchart - - - -  icon_datareport - - - -  icon_briefcase - - - -  icon_shield - - - -  icon_percent - - - -  icon_globe - - - -  icon_globe-2 - - - -  icon_target - - - -  icon_hourglass - - - -  icon_balance - - -
- - - -  icon_star_alt - - - -  icon_star-half_alt - - - -  icon_star - - - -  icon_star-half - - - -  icon_tools - - - -  icon_tool - - - -  icon_cog - - - -  icon_cogs - - - -  arrow_up_alt - - - -  arrow_down_alt - - - -  arrow_left_alt - - - -  arrow_right_alt - - - -  arrow_left-up_alt - - - -  arrow_right-up_alt - - - -  arrow_right-down_alt - - - -  arrow_left-down_alt - - - -  arrow_condense_alt - - - -  arrow_expand_alt3 - - - -  arrow_carrot_up_alt - - - -  arrow_carrot-down_alt - - - -  arrow_carrot-left_alt - - - -  arrow_carrot-right_alt - - - -  arrow_carrot-2up_alt - - - -  arrow_carrot-2dwnn_alt - - - -  arrow_carrot-2left_alt - - - -  arrow_carrot-2right_alt - - - -  arrow_triangle-up_alt - - - -  arrow_triangle-down_alt - - - -  arrow_triangle-left_alt - - - -  arrow_triangle-right_alt - - - -  icon_minus_alt - - - -  icon_plus_alt - - - -  icon_close_alt - - - -  icon_check_alt - - - -  icon_zoom-out - - - -  icon_zoom-in - - - -  icon_stop_alt - - - -  icon_menu-square_alt - - - -  icon_menu-circle_alt - - - -  icon_document - - - -  icon_documents - - - -  icon_pencil_alt - - - -  icon_folder - - - -  icon_folder-open - - - -  icon_folder-add - - - -  icon_folder_upload - - - -  icon_folder_download - - - -  icon_info - - - -  icon_error-circle - - - -  icon_error-oct - - - -  icon_error-triangle - - - -  icon_question_alt - - - -  icon_comment - - - -  icon_chat - - - -  icon_vol-mute - - - -  icon_volume-low - - - -  icon_volume-high - - - -  icon_quotations_alt - - - -  icon_clock - - - -  icon_lock - - - -  icon_lock-open - - - -  icon_key - - - -  icon_cloud - - - -  icon_cloud-upload - - - -  icon_cloud-download - - - -  icon_lightbulb - - - -  icon_gift - - - -  icon_house - - - -  icon_camera - - - -  icon_mail - - - -  icon_cone - - - -  icon_ribbon - - - -  icon_bag - - - -  icon_cart - - - -  icon_tag - - - -  icon_tags - - - -  icon_trash - - - -  icon_cursor - - - -  icon_mic - - - -  icon_compass - - - -  icon_pin - - - -  icon_pushpin - - - -  icon_map - - - -  icon_drawer - - - -  icon_toolbox - - - -  icon_book - - - -  icon_contacts - - - -  icon_archive - - - -  icon_heart - - - -  icon_profile - - - -  icon_group - - - -  icon_grid-2x2 - - - -  icon_grid-3x3 - - - -  icon_music - - - -  icon_pause_alt - - - -  icon_phone - - - -  icon_upload - - - -  icon_download - - - -  icon_rook - - -
- - - -  icon_printer-alt - - - -  icon_calculator_alt - - - -  icon_building_alt - - - -  icon_floppy_alt - - - -  icon_drive_alt - - - -  icon_search_alt - - - -  icon_id_alt - - - -  icon_id-2_alt - - - -  icon_puzzle_alt - - - -  icon_like_alt - - - -  icon_dislike_alt - - - -  icon_mug_alt - - - -  icon_currency_alt - - - -  icon_wallet_alt - - - -  icon_pens_alt - - - -  icon_easel_alt - - - -  icon_flowchart_alt - - - -  icon_datareport_alt - - - -  icon_briefcase_alt - - - -  icon_shield_alt - - - -  icon_percent_alt - - - -  icon_globe_alt - - - -  icon_clipboard - - -
- - - -  social_facebook - - - -  social_twitter - - - -  social_pinterest - - - -  social_googleplus - - - -  social_tumblr - - - -  social_tumbleupon - - - -  social_wordpress - - - -  social_instagram - - - -  social_dribbble - - - -  social_vimeo - - - -  social_linkedin - - - -  social_rss - - - -  social_deviantart - - - -  social_share - - - -  social_myspace - - - -  social_skype - - - -  social_youtube - - - -  social_picassa - - - -  social_googledrive - - - -  social_flickr - - - -  social_blogger - - - -  social_spotify - - - -  social_delicious - - - -  social_facebook_circle - - - -  social_twitter_circle - - - -  social_pinterest_circle - - - -  social_googleplus_circle - - - -  social_tumblr_circle - - - -  social_stumbleupon_circle - - - -  social_wordpress_circle - - - -  social_instagram_circle - - - -  social_dribbble_circle - - - -  social_vimeo_circle - - - -  social_linkedin_circle - - - -  social_rss_circle - - - -  social_deviantart_circle - - - -  social_share_circle - - - -  social_myspace_circle - - - -  social_skype_circle - - - -  social_youtube_circle - - - -  social_picassa_circle - - - -  social_googledrive_alt2 - - - -  social_flickr_circle - - - -  social_blogger_circle - - - -  social_spotify_circle - - - -  social_delicious_circle - - - -  social_facebook_square - - - -  social_twitter_square - - - -  social_pinterest_square - - - -  social_googleplus_square - - - -  social_tumblr_square - - - -  social_stumbleupon_square - - - -  social_wordpress_square - - - -  social_instagram_square - - - -  social_dribbble_square - - - -  social_vimeo_square - - - -  social_linkedin_square - - - -  social_rss_square - - - -  social_deviantart_square - - - -  social_share_square - - - -  social_myspace_square - - - -  social_skype_square - - - -  social_youtube_square - - - -  social_picassa_square - - - -  social_googledrive_square - - - -  social_flickr_square - - - -  social_blogger_square - - - -  social_spotify_square - - - -  social_delicious_square - -
- -
- - - - diff --git a/extensions/vscode-colorize-tests/producticons/mit_license.txt b/extensions/vscode-colorize-tests/producticons/mit_license.txt deleted file mode 100644 index effefee5f0c..00000000000 --- a/extensions/vscode-colorize-tests/producticons/mit_license.txt +++ /dev/null @@ -1,21 +0,0 @@ -The MIT License (MIT) - -Copyright (c) <2013> - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. \ No newline at end of file diff --git a/extensions/vscode-colorize-tests/producticons/test-product-icon-theme.json b/extensions/vscode-colorize-tests/producticons/test-product-icon-theme.json deleted file mode 100644 index dc076aef5f9..00000000000 --- a/extensions/vscode-colorize-tests/producticons/test-product-icon-theme.json +++ /dev/null @@ -1,43 +0,0 @@ -{ - // ElegantIcons from https://www.elegantthemes.com/icons/elegant_font.zip - "fonts": [ - { - "id": "elegant", - "src": [ - { - "path": "./ElegantIcons.woff", - "format": "woff" - } - ], - "weight": "normal", - "style": "normal", - } - ], - "iconDefinitions": { - "chevron-down": { - "fontCharacter": "\\43", - }, - "chevron-right": { - "fontCharacter": "\\45" - }, - "error": { - "fontCharacter": "\\e062" - }, - "warning": { - "fontCharacter": "\\e063" - }, - "settings-gear": { - "fontCharacter": "\\e030" - }, - "files": { - "fontCharacter": "\\e056" - }, - "extensions": { - "fontCharacter": "\\e015" - }, - "debug-alt-2": { - "fontCharacter": "\\e072" - } - - } -} diff --git a/extensions/vscode-colorize-tests/src/colorizer.test.ts b/extensions/vscode-colorize-tests/src/colorizer.test.ts deleted file mode 100644 index 28a992573b9..00000000000 --- a/extensions/vscode-colorize-tests/src/colorizer.test.ts +++ /dev/null @@ -1,76 +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 'mocha'; -import * as assert from 'assert'; -import { commands, Uri } from 'vscode'; -import { join, basename, normalize, dirname } from 'path'; -import * as fs from 'fs'; - -function assertUnchangedTokens(testFixurePath: string, done: any) { - let fileName = basename(testFixurePath); - - return commands.executeCommand('_workbench.captureSyntaxTokens', Uri.file(testFixurePath)).then(data => { - try { - let resultsFolderPath = join(dirname(dirname(testFixurePath)), 'colorize-results'); - if (!fs.existsSync(resultsFolderPath)) { - fs.mkdirSync(resultsFolderPath); - } - let resultPath = join(resultsFolderPath, fileName.replace('.', '_') + '.json'); - if (fs.existsSync(resultPath)) { - let previousData = JSON.parse(fs.readFileSync(resultPath).toString()); - try { - assert.deepEqual(data, previousData); - } catch (e) { - fs.writeFileSync(resultPath, JSON.stringify(data, null, '\t'), { flag: 'w' }); - if (Array.isArray(data) && Array.isArray(previousData) && data.length === previousData.length) { - for (let i= 0; i < data.length; i++) { - let d = data[i]; - let p = previousData[i]; - if (d.c !== p.c || hasThemeChange(d.r, p.r)) { - throw e; - } - } - // different but no tokenization ot color change: no failure - } else { - throw e; - } - } - } else { - fs.writeFileSync(resultPath, JSON.stringify(data, null, '\t')); - } - done(); - } catch (e) { - done(e); - } - }, done); -} - -function hasThemeChange(d: any, p: any) : boolean { - let keys = Object.keys(d); - for (let key of keys) { - if (d[key] !== p[key]) { - return true; - } - } - return false; -} - -suite('colorization', () => { - let extensionsFolder = normalize(join(__dirname, '../../')); - let extensions = fs.readdirSync(extensionsFolder); - extensions.forEach(extension => { - let extensionColorizeFixturePath = join(extensionsFolder, extension, 'test', 'colorize-fixtures'); - if (fs.existsSync(extensionColorizeFixturePath)) { - let fixturesFiles = fs.readdirSync(extensionColorizeFixturePath); - fixturesFiles.forEach(fixturesFile => { - // define a test for each fixture - test(extension + '-' + fixturesFile, function (done) { - assertUnchangedTokens(join(extensionColorizeFixturePath, fixturesFile), done); - }); - }); - } - }); -}); diff --git a/extensions/vscode-colorize-tests/src/colorizerTestMain.ts b/extensions/vscode-colorize-tests/src/colorizerTestMain.ts deleted file mode 100644 index 450e7b4874b..00000000000 --- a/extensions/vscode-colorize-tests/src/colorizerTestMain.ts +++ /dev/null @@ -1,73 +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 * as vscode from 'vscode'; -import * as jsoncParser from 'jsonc-parser'; - -export function activate(context: vscode.ExtensionContext): any { - - const tokenTypes = ['type', 'struct', 'class', 'interface', 'enum', 'parameterType', 'function', 'variable', 'testToken']; - const tokenModifiers = ['static', 'abstract', 'deprecated', 'declaration', 'documentation', 'member', 'async', 'testModifier']; - - const legend = new vscode.SemanticTokensLegend(tokenTypes, tokenModifiers); - - const outputChannel = vscode.window.createOutputChannel('Semantic Tokens Test'); - - const documentSemanticHighlightProvider: vscode.DocumentSemanticTokensProvider = { - provideDocumentSemanticTokens(document: vscode.TextDocument): vscode.ProviderResult { - const builder = new vscode.SemanticTokensBuilder(); - - function addToken(value: string, startLine: number, startCharacter: number, length: number) { - const [type, ...modifiers] = value.split('.'); - - const selectedModifiers = []; - - let tokenType = legend.tokenTypes.indexOf(type); - if (tokenType === -1) { - if (type === 'notInLegend') { - tokenType = tokenTypes.length + 2; - } else { - return; - } - } - - let tokenModifiers = 0; - for (const modifier of modifiers) { - const index = legend.tokenModifiers.indexOf(modifier); - if (index !== -1) { - tokenModifiers = tokenModifiers | 1 << index; - selectedModifiers.push(modifier); - } else if (modifier === 'notInLegend') { - tokenModifiers = tokenModifiers | 1 << (legend.tokenModifiers.length + 2); - selectedModifiers.push(modifier); - } - } - builder.push(startLine, startCharacter, length, tokenType, tokenModifiers); - - outputChannel.appendLine(`line: ${startLine}, character: ${startCharacter}, length ${length}, ${type} (${tokenType}), ${selectedModifiers} ${tokenModifiers.toString(2)}`); - } - - outputChannel.appendLine('---'); - - const visitor: jsoncParser.JSONVisitor = { - onObjectProperty: (property: string, _offset: number, _length: number, startLine: number, startCharacter: number) => { - addToken(property, startLine, startCharacter, property.length + 2); - }, - onLiteralValue: (value: any, _offset: number, length: number, startLine: number, startCharacter: number) => { - if (typeof value === 'string') { - addToken(value, startLine, startCharacter, length); - } - } - }; - jsoncParser.visit(document.getText(), visitor); - - return builder.build(); - } - }; - - - context.subscriptions.push(vscode.languages.registerDocumentSemanticTokensProvider({ pattern: '**/*semantic-test.json' }, documentSemanticHighlightProvider, legend)); - -} diff --git a/extensions/vscode-colorize-tests/src/index.ts b/extensions/vscode-colorize-tests/src/index.ts deleted file mode 100644 index a6e6e6818f2..00000000000 --- a/extensions/vscode-colorize-tests/src/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -const path = require('path'); -const testRunner = require('../../../test/integration/electron/testrunner'); - -const suite = 'Integration Colorize Tests'; - -const options: any = { - ui: 'tdd', - useColors: (!process.env.BUILD_ARTIFACTSTAGINGDIRECTORY && process.platform !== 'win32'), - timeout: 60000 -}; - -if (process.env.BUILD_ARTIFACTSTAGINGDIRECTORY) { - options.reporter = 'mocha-multi-reporters'; - options.reporterOptions = { - reporterEnabled: 'spec, mocha-junit-reporter', - mochaJunitReporterReporterOptions: { - testsuitesTitle: `${suite} ${process.platform}`, - mochaFile: path.join(process.env.BUILD_ARTIFACTSTAGINGDIRECTORY, `test-results/${process.platform}-${process.arch}-${suite.toLowerCase().replace(/[^\w]/g, '-')}-results.xml`) - } - }; -} - -testRunner.configure(options); - -export = testRunner; diff --git a/extensions/vscode-colorize-tests/src/typings/ref.d.ts b/extensions/vscode-colorize-tests/src/typings/ref.d.ts deleted file mode 100644 index a17099ac50c..00000000000 --- a/extensions/vscode-colorize-tests/src/typings/ref.d.ts +++ /dev/null @@ -1,9 +0,0 @@ -/*--------------------------------------------------------------------------------------------- - * Copyright (c) Microsoft Corporation. All rights reserved. - * Licensed under the MIT License. See License.txt in the project root for license information. - *--------------------------------------------------------------------------------------------*/ - -/// -/// -/// - diff --git a/extensions/vscode-colorize-tests/test/semantic-test/.vscode/settings.json b/extensions/vscode-colorize-tests/test/semantic-test/.vscode/settings.json deleted file mode 100644 index c91ebc862e9..00000000000 --- a/extensions/vscode-colorize-tests/test/semantic-test/.vscode/settings.json +++ /dev/null @@ -1,13 +0,0 @@ -{ - "editor.tokenColorCustomizationsExperimental": { - "class": "#00b0b0", - "interface": "#845faf", - "function": "#ff00ff", - "*.declaration": { - "fontStyle": "underline" - }, - "*.declaration.member": { - "fontStyle": "italic bold", - } - } -} \ No newline at end of file diff --git a/extensions/vscode-colorize-tests/test/semantic-test/semantic-test.json b/extensions/vscode-colorize-tests/test/semantic-test/semantic-test.json deleted file mode 100644 index 1a2eeaf4408..00000000000 --- a/extensions/vscode-colorize-tests/test/semantic-test/semantic-test.json +++ /dev/null @@ -1,9 +0,0 @@ -[ - "class", "function.member.declaration", - "parameterType.declaration", "type", "parameterType.declaration", "type", - "variable.declaration", "parameterNames", - "function.member.declaration", - "interface.declaration", - "function.member.declaration", "function.notInLegend" - -] diff --git a/extensions/vscode-colorize-tests/tsconfig.json b/extensions/vscode-colorize-tests/tsconfig.json deleted file mode 100644 index 296ddb38fcb..00000000000 --- a/extensions/vscode-colorize-tests/tsconfig.json +++ /dev/null @@ -1,9 +0,0 @@ -{ - "extends": "../shared.tsconfig.json", - "compilerOptions": { - "outDir": "./out" - }, - "include": [ - "src/**/*" - ] -} \ No newline at end of file diff --git a/extensions/vscode-colorize-tests/yarn.lock b/extensions/vscode-colorize-tests/yarn.lock deleted file mode 100644 index a02d1775928..00000000000 --- a/extensions/vscode-colorize-tests/yarn.lock +++ /dev/null @@ -1,13 +0,0 @@ -# THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. -# yarn lockfile v1 - - -"@types/node@^12.19.9": - version "12.19.9" - resolved "https://registry.yarnpkg.com/@types/node/-/node-12.19.9.tgz#990ad687ad8b26ef6dcc34a4f69c33d40c95b679" - integrity sha512-yj0DOaQeUrk3nJ0bd3Y5PeDRJ6W0r+kilosLA+dzF3dola/o9hxhMSg2sFvVcA2UHS5JSOsZp4S0c1OEXc4m1Q== - -jsonc-parser@2.2.1: - version "2.2.1" - resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-2.2.1.tgz#db73cd59d78cce28723199466b2a03d1be1df2bc" - integrity sha512-o6/yDBYccGvTz1+QFevz6l6OBZ2+fMVu2JZ9CIhzsYRX4mjaK5IyX9eldUdCmga16zlgQxyrj5pt9kzuj2C02w== diff --git a/extensions/xml/.vscodeignore b/extensions/xml/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/xml/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/xml/cgmanifest.json b/extensions/xml/cgmanifest.json deleted file mode 100644 index a291bba7156..00000000000 --- a/extensions/xml/cgmanifest.json +++ /dev/null @@ -1,18 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "atom/language-xml", - "repositoryUrl": "https://github.com/atom/language-xml", - "commitHash": "7bc75dfe779ad5b35d9bf4013d9181864358cb49" - } - }, - "license": "MIT", - "description": "The files syntaxes/xml.json and syntaxes/xsl.json were derived from the Atom package https://github.com/atom/language-xml which were originally converted from the TextMate bundle https://github.com/textmate/xml.tmbundle.", - "version": "0.35.2" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/xml/package.json b/extensions/xml/package.json deleted file mode 100644 index 3e5042df702..00000000000 --- a/extensions/xml/package.json +++ /dev/null @@ -1,99 +0,0 @@ -{ - "name": "xml", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { "vscode": "*" }, - "contributes": { - "languages": [{ - "id": "xml", - "extensions": [ - ".xml", - ".xsd", - ".ascx", - ".atom", - ".axml", - ".bpmn", - ".cpt", - ".csl", - ".csproj", - ".csproj.user", - ".dita", - ".ditamap", - ".dtd", - ".ent", - ".mod", - ".dtml", - ".fsproj", - ".fxml", - ".iml", - ".isml", - ".jmx", - ".launch", - ".menu", - ".mxml", - ".nuspec", - ".opml", - ".owl", - ".proj", - ".props", - ".pt", - ".publishsettings", - ".pubxml", - ".pubxml.user", - ".rbxlx", - ".rbxmx", - ".rdf", - ".rng", - ".rss", - ".shproj", - ".storyboard", - ".svg", - ".targets", - ".tld", - ".tmx", - ".vbproj", - ".vbproj.user", - ".vcxproj", - ".vcxproj.filters", - ".wsdl", - ".wxi", - ".wxl", - ".wxs", - ".xaml", - ".xbl", - ".xib", - ".xlf", - ".xliff", - ".xpdl", - ".xul", - ".xoml" - ], - "firstLine" : "(\\<\\?xml.*)|(\\)", - "name": "meta.tag.preprocessor.xml", - "patterns": [ - { - "match": " ([a-zA-Z-]+)", - "name": "entity.other.attribute-name.xml" - }, - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - { - "begin": "()", - "name": "meta.tag.sgml.doctype.xml", - "patterns": [ - { - "include": "#internalSubset" - } - ] - }, - { - "include": "#comments" - }, - { - "begin": "(<)((?:([-_a-zA-Z0-9]+)(:))?([-_a-zA-Z0-9:]+))(?=(\\s[^>]*)?>)", - "beginCaptures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "entity.name.tag.xml" - }, - "3": { - "name": "entity.name.tag.namespace.xml" - }, - "4": { - "name": "punctuation.separator.namespace.xml" - }, - "5": { - "name": "entity.name.tag.localname.xml" - } - }, - "end": "(>)()", - "endCaptures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "punctuation.definition.tag.xml" - }, - "3": { - "name": "entity.name.tag.xml" - }, - "4": { - "name": "entity.name.tag.namespace.xml" - }, - "5": { - "name": "punctuation.separator.namespace.xml" - }, - "6": { - "name": "entity.name.tag.localname.xml" - }, - "7": { - "name": "punctuation.definition.tag.xml" - } - }, - "name": "meta.tag.no-content.xml", - "patterns": [ - { - "include": "#tagStuff" - } - ] - }, - { - "begin": "()", - "name": "meta.tag.xml", - "patterns": [ - { - "include": "#tagStuff" - } - ] - }, - { - "include": "#entity" - }, - { - "include": "#bare-ampersand" - }, - { - "begin": "<%@", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.xml" - } - }, - "end": "%>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.xml" - } - }, - "name": "source.java-props.embedded.xml", - "patterns": [ - { - "match": "page|include|taglib", - "name": "keyword.other.page-props.xml" - } - ] - }, - { - "begin": "<%[!=]?(?!--)", - "beginCaptures": { - "0": { - "name": "punctuation.section.embedded.begin.xml" - } - }, - "end": "(?!--)%>", - "endCaptures": { - "0": { - "name": "punctuation.section.embedded.end.xml" - } - }, - "name": "source.java.embedded.xml", - "patterns": [ - { - "include": "source.java" - } - ] - }, - { - "begin": "", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.unquoted.cdata.xml" - } - ], - "repository": { - "EntityDecl": { - "begin": "()", - "patterns": [ - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - "bare-ampersand": { - "match": "&", - "name": "invalid.illegal.bad-ampersand.xml" - }, - "doublequotedString": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.double.xml", - "patterns": [ - { - "include": "#entity" - }, - { - "include": "#bare-ampersand" - } - ] - }, - "entity": { - "captures": { - "1": { - "name": "punctuation.definition.constant.xml" - }, - "3": { - "name": "punctuation.definition.constant.xml" - } - }, - "match": "(&)([:a-zA-Z_][:a-zA-Z0-9_.-]*|#[0-9]+|#x[0-9a-fA-F]+)(;)", - "name": "constant.character.entity.xml" - }, - "internalSubset": { - "begin": "(\\[)", - "captures": { - "1": { - "name": "punctuation.definition.constant.xml" - } - }, - "end": "(\\])", - "name": "meta.internalsubset.xml", - "patterns": [ - { - "include": "#EntityDecl" - }, - { - "include": "#parameterEntity" - }, - { - "include": "#comments" - } - ] - }, - "parameterEntity": { - "captures": { - "1": { - "name": "punctuation.definition.constant.xml" - }, - "3": { - "name": "punctuation.definition.constant.xml" - } - }, - "match": "(%)([:a-zA-Z_][:a-zA-Z0-9_.-]*)(;)", - "name": "constant.character.parameter-entity.xml" - }, - "singlequotedString": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.single.xml", - "patterns": [ - { - "include": "#entity" - }, - { - "include": "#bare-ampersand" - } - ] - }, - "tagStuff": { - "patterns": [ - { - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.xml" - }, - "2": { - "name": "entity.other.attribute-name.xml" - }, - "3": { - "name": "punctuation.separator.namespace.xml" - }, - "4": { - "name": "entity.other.attribute-name.localname.xml" - } - }, - "match": "(?:^|\\s+)(?:([-\\w.]+)((:)))?([-\\w.:]+)\\s*=" - }, - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - "comments": { - "patterns": [ - { - "begin": "<%--", - "captures": { - "0": { - "name": "punctuation.definition.comment.xml" - }, - "end": "--%>", - "name": "comment.block.xml" - } - }, - { - "begin": "", - "name": "comment.block.xml", - "patterns": [ - { - "begin": "--(?!>)", - "captures": { - "0": { - "name": "invalid.illegal.bad-comments-or-CDATA.xml" - } - } - } - ] - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/xml/syntaxes/xsl.tmLanguage.json b/extensions/xml/syntaxes/xsl.tmLanguage.json deleted file mode 100644 index c89f50050fe..00000000000 --- a/extensions/xml/syntaxes/xsl.tmLanguage.json +++ /dev/null @@ -1,94 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/atom/language-xml/blob/master/grammars/xsl.cson", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/atom/language-xml/commit/507de2ee7daca60cf02e9e21fbeb92bbae73e280", - "name": "XSL", - "scopeName": "text.xml.xsl", - "patterns": [ - { - "begin": "(<)(xsl)((:))(template)", - "captures": { - "1": { - "name": "punctuation.definition.tag.xml" - }, - "2": { - "name": "entity.name.tag.namespace.xml" - }, - "3": { - "name": "entity.name.tag.xml" - }, - "4": { - "name": "punctuation.separator.namespace.xml" - }, - "5": { - "name": "entity.name.tag.localname.xml" - } - }, - "end": "(>)", - "name": "meta.tag.xml.template", - "patterns": [ - { - "captures": { - "1": { - "name": "entity.other.attribute-name.namespace.xml" - }, - "2": { - "name": "entity.other.attribute-name.xml" - }, - "3": { - "name": "punctuation.separator.namespace.xml" - }, - "4": { - "name": "entity.other.attribute-name.localname.xml" - } - }, - "match": " (?:([-_a-zA-Z0-9]+)((:)))?([a-zA-Z-]+)" - }, - { - "include": "#doublequotedString" - }, - { - "include": "#singlequotedString" - } - ] - }, - { - "include": "text.xml" - } - ], - "repository": { - "doublequotedString": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.double.xml" - }, - "singlequotedString": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.xml" - } - }, - "end": "'", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.xml" - } - }, - "name": "string.quoted.single.xml" - } - } -} \ No newline at end of file diff --git a/extensions/xml/test/colorize-fixtures/test-7115.xml b/extensions/xml/test/colorize-fixtures/test-7115.xml deleted file mode 100644 index 74bf37e9037..00000000000 --- a/extensions/xml/test/colorize-fixtures/test-7115.xml +++ /dev/null @@ -1,7 +0,0 @@ - - - - - - - \ No newline at end of file diff --git a/extensions/xml/test/colorize-fixtures/test.xml b/extensions/xml/test/colorize-fixtures/test.xml deleted file mode 100644 index af12b7ea57a..00000000000 --- a/extensions/xml/test/colorize-fixtures/test.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - Lucy - 1952-03-03 - bossy, crabby and selfish - - - - - - diff --git a/extensions/xml/test/colorize-results/test-7115_xml.json b/extensions/xml/test/colorize-results/test-7115_xml.json deleted file mode 100644 index 5a14d78ce71..00000000000 --- a/extensions/xml/test/colorize-results/test-7115_xml.json +++ /dev/null @@ -1,585 +0,0 @@ -[ - { - "c": "", - "t": "text.xml meta.tag.preprocessor.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "WorkFine", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "NoColorWithNonLatinCharacters_АБВ", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "NextTagnotWork", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "something", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Поле", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "tagnotwork", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "WorkFine", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": "/>", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Error_АБВГД", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": "/>", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/xml/test/colorize-results/test_xml.json b/extensions/xml/test/colorize-results/test_xml.json deleted file mode 100644 index b16beb8b122..00000000000 --- a/extensions/xml/test/colorize-results/test_xml.json +++ /dev/null @@ -1,1806 +0,0 @@ -[ - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "project", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "target", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "jar", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "mkdir", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "dir", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "build/jar", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/>", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "jar", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "destfile", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "build/jar/HelloWorld.jar", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "basedir", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "build/classes", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "manifest", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "attribute", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Main-Class", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "value", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "oata.HelloWorld", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/>", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml comment.block.xml punctuation.definition.comment.xml", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "character", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "id", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Lucy", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "hr", - "t": "text.xml meta.tag.xml entity.name.tag.namespace.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "text.xml meta.tag.xml entity.name.tag.xml punctuation.separator.namespace.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": "name", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Lucy", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "hr", - "t": "text.xml meta.tag.xml entity.name.tag.namespace.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "text.xml meta.tag.xml entity.name.tag.xml punctuation.separator.namespace.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": "born", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "1952-03-03", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "qualification", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "bossy, crabby and selfish", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "VisualState.Setters", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ">", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Setter", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Target", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "inputPanel.Orientation", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Value", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "Vertical", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/>", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "<", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "Setter", - "t": "text.xml meta.tag.xml entity.name.tag.localname.xml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Target", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "inputButton.Margin", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Value", - "t": "text.xml meta.tag.xml entity.other.attribute-name.localname.xml", - "r": { - "dark_plus": "entity.other.attribute-name: #9CDCFE", - "light_plus": "entity.other.attribute-name: #FF0000", - "dark_vs": "entity.other.attribute-name: #9CDCFE", - "light_vs": "entity.other.attribute-name: #FF0000", - "hc_black": "entity.other.attribute-name: #9CDCFE" - } - }, - { - "c": "=", - "t": "text.xml meta.tag.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.begin.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "0,4,0,0", - "t": "text.xml meta.tag.xml string.quoted.double.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "\"", - "t": "text.xml meta.tag.xml string.quoted.double.xml punctuation.definition.string.end.xml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.double.xml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.double.xml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "/>", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": " ", - "t": "text.xml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - }, - { - "c": "", - "t": "text.xml meta.tag.xml punctuation.definition.tag.xml", - "r": { - "dark_plus": "punctuation.definition.tag: #808080", - "light_plus": "punctuation.definition.tag: #800000", - "dark_vs": "punctuation.definition.tag: #808080", - "light_vs": "punctuation.definition.tag: #800000", - "hc_black": "punctuation.definition.tag: #808080" - } - } -] \ No newline at end of file diff --git a/extensions/xml/xml.language-configuration.json b/extensions/xml/xml.language-configuration.json deleted file mode 100644 index 15664cbb4f5..00000000000 --- a/extensions/xml/xml.language-configuration.json +++ /dev/null @@ -1,34 +0,0 @@ -{ - "comments": { - "blockComment": [ "" ] - }, - "brackets": [ - [""], - ["<", ">"], - ["{", "}"], - ["(", ")"] - ], - "autoClosingPairs": [ - { "open": "{", "close": "}"}, - { "open": "[", "close": "]"}, - { "open": "(", "close": ")" }, - { "open": "\"", "close": "\"", "notIn": ["string"] }, - { "open": "'", "close": "'", "notIn": ["string"] }, - { "open": "", "notIn": [ "comment", "string" ]}, - { "open": "", "notIn": [ "comment", "string" ]} - ], - "surroundingPairs": [ - { "open": "'", "close": "'" }, - { "open": "\"", "close": "\"" }, - { "open": "{", "close": "}"}, - { "open": "[", "close": "]"}, - { "open": "(", "close": ")" }, - { "open": "<", "close": ">" } - ], - "folding": { - "markers": { - "start": "^\\s*", - "end": "^\\s*" - } - } -} diff --git a/extensions/xml/xsl.language-configuration.json b/extensions/xml/xsl.language-configuration.json deleted file mode 100644 index cf787c79edd..00000000000 --- a/extensions/xml/xsl.language-configuration.json +++ /dev/null @@ -1,24 +0,0 @@ -{ - "comments": { - "lineComment": "", - "blockComment": [""] - }, - "brackets": [ - [""], - ["<", ">"], - ["{", "}"], - ["(", ")"], - ["[", "]"] - ] - - // enhancedBrackets: [{ - // tokenType: 'tag.tag-$1.xml', - // openTrigger: '>', - // open: /<(\w[\w\d]*)([^\/>]*(?!\/)>)[^<>]*$/i, - // closeComplete: '', - // closeTrigger: '>', - // close: /<\/(\w[\w\d]*)\s*>$/i - // }], - - // autoClosingPairs: [['\'', '\''], ['"', '"'] ] -} diff --git a/extensions/yaml/.vscodeignore b/extensions/yaml/.vscodeignore deleted file mode 100644 index 0a622e7e300..00000000000 --- a/extensions/yaml/.vscodeignore +++ /dev/null @@ -1,2 +0,0 @@ -test/** -cgmanifest.json diff --git a/extensions/yaml/cgmanifest.json b/extensions/yaml/cgmanifest.json deleted file mode 100644 index e6c3ca158b5..00000000000 --- a/extensions/yaml/cgmanifest.json +++ /dev/null @@ -1,37 +0,0 @@ -{ - "registrations": [ - { - "component": { - "type": "git", - "git": { - "name": "textmate/yaml.tmbundle", - "repositoryUrl": "https://github.com/textmate/yaml.tmbundle", - "commitHash": "e54ceae3b719506dba7e481a77cea4a8b576ae46" - } - }, - "licenseDetail": [ - "Copyright (c) 2015 FichteFoll ", - "", - "Permission is hereby granted, free of charge, to any person obtaining a copy", - "of this software and associated documentation files (the \"Software\"), to deal", - "in the Software without restriction, including without limitation the rights", - "to use, copy, modify, merge, publish, distribute, sublicense, and/or sell", - "copies of the Software, and to permit persons to whom the Software is", - "furnished to do so, subject to the following conditions:", - "", - "The above copyright notice and this permission notice shall be included in all", - "copies or substantial portions of the Software.", - "", - "THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR", - "IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,", - "FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE", - "AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER", - "LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,", - "OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE." - ], - "license": "TextMate Bundle License", - "version": "0.0.0" - } - ], - "version": 1 -} \ No newline at end of file diff --git a/extensions/yaml/language-configuration.json b/extensions/yaml/language-configuration.json deleted file mode 100644 index 16dc5a02e86..00000000000 --- a/extensions/yaml/language-configuration.json +++ /dev/null @@ -1,35 +0,0 @@ -{ - "comments": { - "lineComment": "#" - }, - "brackets": [ - ["{", "}"], - ["[", "]"], - ["(", ")"] - ], - "autoClosingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ], - "surroundingPairs": [ - ["{", "}"], - ["[", "]"], - ["(", ")"], - ["\"", "\""], - ["'", "'"] - ], - "folding": { - "offSide": true, - "markers": { - "start": "^\\s*#\\s*region\\b", - "end": "^\\s*#\\s*endregion\\b" - } - }, - "indentationRules": { - "increaseIndentPattern": "^\\s*.*(:|-) ?(&\\w+)?(\\{[^}\"']*|\\([^)\"']*)?$", - "decreaseIndentPattern": "^\\s+\\}$" - } -} diff --git a/extensions/yaml/package.json b/extensions/yaml/package.json deleted file mode 100644 index c7dec1b1b83..00000000000 --- a/extensions/yaml/package.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "name": "yaml", - "displayName": "%displayName%", - "description": "%description%", - "version": "1.0.0", - "publisher": "vscode", - "license": "MIT", - "engines": { - "vscode": "*" - }, - "scripts": { - "update-grammar": "node ../../build/npm/update-grammar.js textmate/yaml.tmbundle Syntaxes/YAML.tmLanguage ./syntaxes/yaml.tmLanguage.json" - }, - "contributes": { - "languages": [ - { - "id": "yaml", - "aliases": [ - "YAML", - "yaml" - ], - "extensions": [ - ".yml", - ".eyaml", - ".eyml", - ".yaml" - ], - "firstLine": "^#cloud-config", - "configuration": "./language-configuration.json" - } - ], - "grammars": [ - { - "language": "yaml", - "scopeName": "source.yaml", - "path": "./syntaxes/yaml.tmLanguage.json" - } - ], - "configurationDefaults": { - "[yaml]": { - "editor.insertSpaces": true, - "editor.tabSize": 2, - "editor.autoIndent": "advanced" - } - } - } -} diff --git a/extensions/yaml/package.nls.json b/extensions/yaml/package.nls.json deleted file mode 100644 index b8f93d03998..00000000000 --- a/extensions/yaml/package.nls.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "displayName": "YAML Language Basics", - "description": "Provides syntax highlighting and bracket matching in YAML files." -} \ No newline at end of file diff --git a/extensions/yaml/syntaxes/yaml.tmLanguage.json b/extensions/yaml/syntaxes/yaml.tmLanguage.json deleted file mode 100644 index 447df713901..00000000000 --- a/extensions/yaml/syntaxes/yaml.tmLanguage.json +++ /dev/null @@ -1,621 +0,0 @@ -{ - "information_for_contributors": [ - "This file has been converted from https://github.com/textmate/yaml.tmbundle/blob/master/Syntaxes/YAML.tmLanguage", - "If you want to provide a fix or improvement, please create a pull request against the original repository.", - "Once accepted there, we are happy to receive an update request." - ], - "version": "https://github.com/textmate/yaml.tmbundle/commit/e54ceae3b719506dba7e481a77cea4a8b576ae46", - "name": "YAML", - "scopeName": "source.yaml", - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property" - }, - { - "include": "#directive" - }, - { - "match": "^---", - "name": "entity.other.document.begin.yaml" - }, - { - "match": "^\\.{3}", - "name": "entity.other.document.end.yaml" - }, - { - "include": "#node" - } - ], - "repository": { - "block-collection": { - "patterns": [ - { - "include": "#block-sequence" - }, - { - "include": "#block-mapping" - } - ] - }, - "block-mapping": { - "patterns": [ - { - "include": "#block-pair" - } - ] - }, - "block-node": { - "patterns": [ - { - "include": "#prototype" - }, - { - "include": "#block-scalar" - }, - { - "include": "#block-collection" - }, - { - "include": "#flow-scalar-plain-out" - }, - { - "include": "#flow-node" - } - ] - }, - "block-pair": { - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "1": { - "name": "punctuation.definition.key-value.begin.yaml" - } - }, - "end": "(?=\\?)|^ *(:)|(:)", - "endCaptures": { - "1": { - "name": "punctuation.separator.key-value.mapping.yaml" - }, - "2": { - "name": "invalid.illegal.expected-newline.yaml" - } - }, - "name": "meta.block-mapping.yaml", - "patterns": [ - { - "include": "#block-node" - } - ] - }, - { - "begin": "(?x)\n (?=\n (?x:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n )\n (\n [^\\s:]\n | : \\S\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", - "patterns": [ - { - "include": "#flow-scalar-plain-out-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", - "beginCaptures": { - "0": { - "name": "entity.name.tag.yaml" - } - }, - "contentName": "entity.name.tag.yaml", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", - "name": "string.unquoted.plain.out.yaml" - } - ] - }, - { - "match": ":(?=\\s|$)", - "name": "punctuation.separator.key-value.mapping.yaml" - } - ] - }, - "block-scalar": { - "begin": "(?:(\\|)|(>))([1-9])?([-+])?(.*\\n?)", - "beginCaptures": { - "1": { - "name": "keyword.control.flow.block-scalar.literal.yaml" - }, - "2": { - "name": "keyword.control.flow.block-scalar.folded.yaml" - }, - "3": { - "name": "constant.numeric.indentation-indicator.yaml" - }, - "4": { - "name": "storage.modifier.chomping-indicator.yaml" - }, - "5": { - "patterns": [ - { - "include": "#comment" - }, - { - "match": ".+", - "name": "invalid.illegal.expected-comment-or-newline.yaml" - } - ] - } - }, - "end": "^(?=\\S)|(?!\\G)", - "patterns": [ - { - "begin": "^([ ]+)(?! )", - "end": "^(?!\\1|\\s*$)", - "name": "string.unquoted.block.yaml" - } - ] - }, - "block-sequence": { - "match": "(-)(?!\\S)", - "name": "punctuation.definition.block.sequence.item.yaml" - }, - "comment": { - "begin": "(?:(^[ \\t]*)|[ \\t]+)(?=#\\p{Print}*$)", - "beginCaptures": { - "1": { - "name": "punctuation.whitespace.comment.leading.yaml" - } - }, - "end": "(?!\\G)", - "patterns": [ - { - "begin": "#", - "beginCaptures": { - "0": { - "name": "punctuation.definition.comment.yaml" - } - }, - "end": "\\n", - "name": "comment.line.number-sign.yaml" - } - ] - }, - "directive": { - "begin": "^%", - "beginCaptures": { - "0": { - "name": "punctuation.definition.directive.begin.yaml" - } - }, - "end": "(?=$|[ \\t]+($|#))", - "name": "meta.directive.yaml", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.other.directive.yaml.yaml" - }, - "2": { - "name": "constant.numeric.yaml-version.yaml" - } - }, - "match": "\\G(YAML)[ \\t]+(\\d+\\.\\d+)" - }, - { - "captures": { - "1": { - "name": "keyword.other.directive.tag.yaml" - }, - "2": { - "name": "storage.type.tag-handle.yaml" - }, - "3": { - "name": "support.type.tag-prefix.yaml" - } - }, - "match": "(?x)\n \\G\n (TAG)\n (?:[ \\t]+\n ((?:!(?:[0-9A-Za-z\\-]*!)?))\n (?:[ \\t]+ (\n ! (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )*\n | (?![,!\\[\\]{}]) (?x: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+\n )\n )?\n )?\n " - }, - { - "captures": { - "1": { - "name": "support.other.directive.reserved.yaml" - }, - "2": { - "name": "string.unquoted.directive-name.yaml" - }, - "3": { - "name": "string.unquoted.directive-parameter.yaml" - } - }, - "match": "(?x) \\G (\\w+) (?:[ \\t]+ (\\w+) (?:[ \\t]+ (\\w+))? )?" - }, - { - "match": "\\S+", - "name": "invalid.illegal.unrecognized.yaml" - } - ] - }, - "flow-alias": { - "captures": { - "1": { - "name": "keyword.control.flow.alias.yaml" - }, - "2": { - "name": "punctuation.definition.alias.yaml" - }, - "3": { - "name": "variable.other.alias.yaml" - }, - "4": { - "name": "invalid.illegal.character.anchor.yaml" - } - }, - "match": "((\\*))([^\\s\\[\\]/{/},]+)([^\\s\\]},]\\S*)?" - }, - "flow-collection": { - "patterns": [ - { - "include": "#flow-sequence" - }, - { - "include": "#flow-mapping" - } - ] - }, - "flow-mapping": { - "begin": "\\{", - "beginCaptures": { - "0": { - "name": "punctuation.definition.mapping.begin.yaml" - } - }, - "end": "\\}", - "endCaptures": { - "0": { - "name": "punctuation.definition.mapping.end.yaml" - } - }, - "name": "meta.flow-mapping.yaml", - "patterns": [ - { - "include": "#prototype" - }, - { - "match": ",", - "name": "punctuation.separator.mapping.yaml" - }, - { - "include": "#flow-pair" - } - ] - }, - "flow-node": { - "patterns": [ - { - "include": "#prototype" - }, - { - "include": "#flow-alias" - }, - { - "include": "#flow-collection" - }, - { - "include": "#flow-scalar" - } - ] - }, - "flow-pair": { - "patterns": [ - { - "begin": "\\?", - "beginCaptures": { - "0": { - "name": "punctuation.definition.key-value.begin.yaml" - } - }, - "end": "(?=[},\\]])", - "name": "meta.flow-pair.explicit.yaml", - "patterns": [ - { - "include": "#prototype" - }, - { - "include": "#flow-pair" - }, - { - "include": "#flow-node" - }, - { - "begin": ":(?=\\s|$|[\\[\\]{},])", - "beginCaptures": { - "0": { - "name": "punctuation.separator.key-value.mapping.yaml" - } - }, - "end": "(?=[},\\]])", - "patterns": [ - { - "include": "#flow-value" - } - ] - } - ] - }, - { - "begin": "(?x)\n (?=\n (?:\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n )\n (\n [^\\s:[\\[\\]{},]]\n | : [^\\s[\\[\\]{},]]\n | \\s+ (?![#\\s])\n )*\n \\s*\n :\n\t\t\t\t\t\t\t(\\s|$)\n )\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", - "name": "meta.flow-pair.key.yaml", - "patterns": [ - { - "include": "#flow-scalar-plain-in-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", - "beginCaptures": { - "0": { - "name": "entity.name.tag.yaml" - } - }, - "contentName": "entity.name.tag.yaml", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", - "name": "string.unquoted.plain.in.yaml" - } - ] - }, - { - "include": "#flow-node" - }, - { - "begin": ":(?=\\s|$|[\\[\\]{},])", - "captures": { - "0": { - "name": "punctuation.separator.key-value.mapping.yaml" - } - }, - "end": "(?=[},\\]])", - "name": "meta.flow-pair.yaml", - "patterns": [ - { - "include": "#flow-value" - } - ] - } - ] - }, - "flow-scalar": { - "patterns": [ - { - "include": "#flow-scalar-double-quoted" - }, - { - "include": "#flow-scalar-single-quoted" - }, - { - "include": "#flow-scalar-plain-in" - } - ] - }, - "flow-scalar-double-quoted": { - "begin": "\"", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.yaml" - } - }, - "end": "\"", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.yaml" - } - }, - "name": "string.quoted.double.yaml", - "patterns": [ - { - "match": "\\\\([0abtnvfre \"/\\\\N_Lp]|x\\d\\d|u\\d{4}|U\\d{8})", - "name": "constant.character.escape.yaml" - }, - { - "match": "\\\\\\n", - "name": "constant.character.escape.double-quoted.newline.yaml" - } - ] - }, - "flow-scalar-plain-in": { - "patterns": [ - { - "include": "#flow-scalar-plain-in-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] [^\\s[\\[\\]{},]]\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n ", - "name": "string.unquoted.plain.in.yaml" - } - ] - }, - "flow-scalar-plain-in-implicit-type": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.language.null.yaml" - }, - "2": { - "name": "constant.language.boolean.yaml" - }, - "3": { - "name": "constant.numeric.integer.yaml" - }, - "4": { - "name": "constant.numeric.float.yaml" - }, - "5": { - "name": "constant.other.timestamp.yaml" - }, - "6": { - "name": "constant.language.value.yaml" - }, - "7": { - "name": "constant.language.merge.yaml" - } - }, - "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n | \\s* : [\\[\\]{},]\n | \\s* [\\[\\]{},]\n )\n )\n " - } - ] - }, - "flow-scalar-plain-out": { - "patterns": [ - { - "include": "#flow-scalar-plain-out-implicit-type" - }, - { - "begin": "(?x)\n [^\\s[-?:,\\[\\]{}#&*!|>'\"%@`]]\n | [?:-] \\S\n ", - "end": "(?x)\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n ", - "name": "string.unquoted.plain.out.yaml" - } - ] - }, - "flow-scalar-plain-out-implicit-type": { - "patterns": [ - { - "captures": { - "1": { - "name": "constant.language.null.yaml" - }, - "2": { - "name": "constant.language.boolean.yaml" - }, - "3": { - "name": "constant.numeric.integer.yaml" - }, - "4": { - "name": "constant.numeric.float.yaml" - }, - "5": { - "name": "constant.other.timestamp.yaml" - }, - "6": { - "name": "constant.language.value.yaml" - }, - "7": { - "name": "constant.language.merge.yaml" - } - }, - "match": "(?x)\n (?x:\n (null|Null|NULL|~)\n | (y|Y|yes|Yes|YES|n|N|no|No|NO|true|True|TRUE|false|False|FALSE|on|On|ON|off|Off|OFF)\n | (\n (?:\n [-+]? 0b [0-1_]+ # (base 2)\n | [-+]? 0 [0-7_]+ # (base 8)\n | [-+]? (?: 0|[1-9][0-9_]*) # (base 10)\n | [-+]? 0x [0-9a-fA-F_]+ # (base 16)\n | [-+]? [1-9] [0-9_]* (?: :[0-5]?[0-9])+ # (base 60)\n )\n )\n | (\n (?x:\n [-+]? (?: [0-9] [0-9_]*)? \\. [0-9.]* (?: [eE] [-+] [0-9]+)? # (base 10)\n | [-+]? [0-9] [0-9_]* (?: :[0-5]?[0-9])+ \\. [0-9_]* # (base 60)\n | [-+]? \\. (?: inf|Inf|INF) # (infinity)\n | \\. (?: nan|NaN|NAN) # (not a number)\n )\n )\n | (\n (?x:\n \\d{4} - \\d{2} - \\d{2} # (y-m-d)\n | \\d{4} # (year)\n - \\d{1,2} # (month)\n - \\d{1,2} # (day)\n (?: [Tt] | [ \\t]+) \\d{1,2} # (hour)\n : \\d{2} # (minute)\n : \\d{2} # (second)\n (?: \\.\\d*)? # (fraction)\n (?:\n (?:[ \\t]*) Z\n | [-+] \\d{1,2} (?: :\\d{1,2})?\n )? # (time zone)\n )\n )\n | (=)\n | (<<)\n )\n (?x:\n (?=\n \\s* $\n | \\s+ \\#\n | \\s* : (\\s|$)\n )\n )\n " - } - ] - }, - "flow-scalar-single-quoted": { - "begin": "'", - "beginCaptures": { - "0": { - "name": "punctuation.definition.string.begin.yaml" - } - }, - "end": "'(?!')", - "endCaptures": { - "0": { - "name": "punctuation.definition.string.end.yaml" - } - }, - "name": "string.quoted.single.yaml", - "patterns": [ - { - "match": "''", - "name": "constant.character.escape.single-quoted.yaml" - } - ] - }, - "flow-sequence": { - "begin": "\\[", - "beginCaptures": { - "0": { - "name": "punctuation.definition.sequence.begin.yaml" - } - }, - "end": "\\]", - "endCaptures": { - "0": { - "name": "punctuation.definition.sequence.end.yaml" - } - }, - "name": "meta.flow-sequence.yaml", - "patterns": [ - { - "include": "#prototype" - }, - { - "match": ",", - "name": "punctuation.separator.sequence.yaml" - }, - { - "include": "#flow-pair" - }, - { - "include": "#flow-node" - } - ] - }, - "flow-value": { - "patterns": [ - { - "begin": "\\G(?![},\\]])", - "end": "(?=[},\\]])", - "name": "meta.flow-pair.value.yaml", - "patterns": [ - { - "include": "#flow-node" - } - ] - } - ] - }, - "node": { - "patterns": [ - { - "include": "#block-node" - } - ] - }, - "property": { - "begin": "(?=!|&)", - "end": "(?!\\G)", - "name": "meta.property.yaml", - "patterns": [ - { - "captures": { - "1": { - "name": "keyword.control.property.anchor.yaml" - }, - "2": { - "name": "punctuation.definition.anchor.yaml" - }, - "3": { - "name": "entity.name.type.anchor.yaml" - }, - "4": { - "name": "invalid.illegal.character.anchor.yaml" - } - }, - "match": "\\G((&))([^\\s\\[\\]/{/},]+)(\\S+)?" - }, - { - "match": "(?x)\n \\G\n (?:\n ! < (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$,_.!~*'()\\[\\]] )+ >\n | (?:!(?:[0-9A-Za-z\\-]*!)?) (?: %[0-9A-Fa-f]{2} | [0-9A-Za-z\\-#;/?:@&=+$_.~*'()] )+\n | !\n )\n (?=\\ |\\t|$)\n ", - "name": "storage.type.tag-handle.yaml" - }, - { - "match": "\\S+", - "name": "invalid.illegal.tag-handle.yaml" - } - ] - }, - "prototype": { - "patterns": [ - { - "include": "#comment" - }, - { - "include": "#property" - } - ] - } - } -} \ No newline at end of file diff --git a/extensions/yaml/test/colorize-fixtures/issue-1550.yaml b/extensions/yaml/test/colorize-fixtures/issue-1550.yaml deleted file mode 100644 index b8a82c8ff64..00000000000 --- a/extensions/yaml/test/colorize-fixtures/issue-1550.yaml +++ /dev/null @@ -1,4 +0,0 @@ -test1 : dsd -test2 : abc-def -test-3 : abcdef -test-4 : abc-def \ No newline at end of file diff --git a/extensions/yaml/test/colorize-fixtures/issue-4008.yaml b/extensions/yaml/test/colorize-fixtures/issue-4008.yaml deleted file mode 100644 index da02551f2ab..00000000000 --- a/extensions/yaml/test/colorize-fixtures/issue-4008.yaml +++ /dev/null @@ -1,4 +0,0 @@ -- blue: a="brown,not_brown" -- not_blue: foo -- blue: foo="}" -- not_blue: 1 \ No newline at end of file diff --git a/extensions/yaml/test/colorize-fixtures/issue-6303.yaml b/extensions/yaml/test/colorize-fixtures/issue-6303.yaml deleted file mode 100644 index b325af0da78..00000000000 --- a/extensions/yaml/test/colorize-fixtures/issue-6303.yaml +++ /dev/null @@ -1,9 +0,0 @@ -swagger: '2.0' -info: - description: 'The API Management Service API defines an updated and refined version - of the concepts currently known as Developer, APP, and API Product in Edge. Of - note is the introduction of the API concept, missing previously from Edge - - ' - title: API Management Service API - version: initial \ No newline at end of file diff --git a/extensions/yaml/test/colorize-fixtures/test.yaml b/extensions/yaml/test/colorize-fixtures/test.yaml deleted file mode 100644 index 7083eed0cca..00000000000 --- a/extensions/yaml/test/colorize-fixtures/test.yaml +++ /dev/null @@ -1,18 +0,0 @@ -# sequencer protocols for Laser eye surgery ---- -- step: &id001 # defines anchor label &id001 - instrument: Lasik 2000 - pulseEnergy: 5.4 - spotSize: 1mm - -- step: *id001 # refers to the first step (with anchor &id001) -- step: *id001 - spotSize: 2mm -- step: *id002 -- {name: John Smith, age: 33} -- name: Mary Smith - age: 27 - men: [John Smith, Bill Jones] -women: - - Mary Smith - - Susan Williams \ No newline at end of file diff --git a/extensions/yaml/test/colorize-results/issue-1550_yaml.json b/extensions/yaml/test/colorize-results/issue-1550_yaml.json deleted file mode 100644 index 79d6d39cc99..00000000000 --- a/extensions/yaml/test/colorize-results/issue-1550_yaml.json +++ /dev/null @@ -1,222 +0,0 @@ -[ - { - "c": "test1", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "dsd", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "test2", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "abc-def", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "test-3", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "abcdef", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "test-4", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "abc-def", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - } -] \ No newline at end of file diff --git a/extensions/yaml/test/colorize-results/issue-4008_yaml.json b/extensions/yaml/test/colorize-results/issue-4008_yaml.json deleted file mode 100644 index c16426c590f..00000000000 --- a/extensions/yaml/test/colorize-results/issue-4008_yaml.json +++ /dev/null @@ -1,266 +0,0 @@ -[ - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "blue", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "a=\"brown,not_brown\"", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "not_blue", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "blue", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "foo=\"}\"", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "not_blue", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1", - "t": "source.yaml constant.numeric.integer.yaml", - "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" - } - } -] diff --git a/extensions/yaml/test/colorize-results/issue-6303_yaml.json b/extensions/yaml/test/colorize-results/issue-6303_yaml.json deleted file mode 100644 index edd710c06e5..00000000000 --- a/extensions/yaml/test/colorize-results/issue-6303_yaml.json +++ /dev/null @@ -1,310 +0,0 @@ -[ - { - "c": "swagger", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.yaml string.quoted.single.yaml punctuation.definition.string.begin.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "2.0", - "t": "source.yaml string.quoted.single.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.yaml string.quoted.single.yaml punctuation.definition.string.end.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "info", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "description", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "'", - "t": "source.yaml string.quoted.single.yaml punctuation.definition.string.begin.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "The API Management Service API defines an updated and refined version", - "t": "source.yaml string.quoted.single.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " of the concepts currently known as Developer, APP, and API Product in Edge. Of", - "t": "source.yaml string.quoted.single.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " note is the introduction of the API concept, missing previously from Edge", - "t": "source.yaml string.quoted.single.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.yaml string.quoted.single.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "'", - "t": "source.yaml string.quoted.single.yaml punctuation.definition.string.end.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.quoted.single.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.quoted.single.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "title", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "API Management Service API", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "version", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "initial", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - } -] \ No newline at end of file diff --git a/extensions/yaml/test/colorize-results/test_yaml.json b/extensions/yaml/test/colorize-results/test_yaml.json deleted file mode 100644 index 258202824fe..00000000000 --- a/extensions/yaml/test/colorize-results/test_yaml.json +++ /dev/null @@ -1,1135 +0,0 @@ -[ - { - "c": "#", - "t": "source.yaml comment.line.number-sign.yaml punctuation.definition.comment.yaml", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " sequencer protocols for Laser eye surgery", - "t": "source.yaml comment.line.number-sign.yaml", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "---", - "t": "source.yaml entity.other.document.begin.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "step", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "&", - "t": "source.yaml meta.property.yaml keyword.control.property.anchor.yaml punctuation.definition.anchor.yaml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "id001", - "t": "source.yaml meta.property.yaml entity.name.type.anchor.yaml", - "r": { - "dark_plus": "entity.name.type: #4EC9B0", - "light_plus": "entity.name.type: #267F99", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "entity.name.type: #4EC9B0" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.yaml comment.line.number-sign.yaml punctuation.definition.comment.yaml", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " defines anchor label &id001", - "t": "source.yaml comment.line.number-sign.yaml", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "instrument", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Lasik 2000", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "pulseEnergy", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "5.4", - "t": "source.yaml constant.numeric.float.yaml", - "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" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "spotSize", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "1mm", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "step", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.yaml keyword.control.flow.alias.yaml punctuation.definition.alias.yaml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "id001", - "t": "source.yaml variable.other.alias.yaml", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "#", - "t": "source.yaml comment.line.number-sign.yaml punctuation.definition.comment.yaml", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": " refers to the first step (with anchor &id001)", - "t": "source.yaml comment.line.number-sign.yaml", - "r": { - "dark_plus": "comment: #6A9955", - "light_plus": "comment: #008000", - "dark_vs": "comment: #6A9955", - "light_vs": "comment: #008000", - "hc_black": "comment: #7CA668" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "step", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.yaml keyword.control.flow.alias.yaml punctuation.definition.alias.yaml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "id001", - "t": "source.yaml variable.other.alias.yaml", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "spotSize", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "2mm", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "step", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "*", - "t": "source.yaml keyword.control.flow.alias.yaml punctuation.definition.alias.yaml", - "r": { - "dark_plus": "keyword.control: #C586C0", - "light_plus": "keyword.control: #AF00DB", - "dark_vs": "keyword.control: #569CD6", - "light_vs": "keyword.control: #0000FF", - "hc_black": "keyword.control: #C586C0" - } - }, - { - "c": "id002", - "t": "source.yaml variable.other.alias.yaml", - "r": { - "dark_plus": "variable: #9CDCFE", - "light_plus": "variable: #001080", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "variable: #9CDCFE" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "{", - "t": "source.yaml meta.flow-mapping.yaml punctuation.definition.mapping.begin.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.key.yaml string.unquoted.plain.in.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.yaml meta.flow-pair.value.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "John Smith", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.yaml meta.flow-pair.value.yaml string.unquoted.plain.in.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.in.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.in.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.yaml meta.flow-mapping.yaml punctuation.separator.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml meta.flow-mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "age", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.key.yaml string.unquoted.plain.in.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.yaml meta.flow-pair.value.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "33", - "t": "source.yaml meta.flow-mapping.yaml meta.flow-pair.yaml meta.flow-pair.value.yaml constant.numeric.integer.yaml", - "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" - } - }, - { - "c": "}", - "t": "source.yaml meta.flow-mapping.yaml punctuation.definition.mapping.end.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "name", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Mary Smith", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "age", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "27", - "t": "source.yaml constant.numeric.integer.yaml", - "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" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "men", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "[", - "t": "source.yaml meta.flow-sequence.yaml punctuation.definition.sequence.begin.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "John Smith", - "t": "source.yaml meta.flow-sequence.yaml string.unquoted.plain.in.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.in.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.in.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": ",", - "t": "source.yaml meta.flow-sequence.yaml punctuation.separator.sequence.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml meta.flow-sequence.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Bill Jones", - "t": "source.yaml meta.flow-sequence.yaml string.unquoted.plain.in.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.in.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.in.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": "]", - "t": "source.yaml meta.flow-sequence.yaml punctuation.definition.sequence.end.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "women", - "t": "source.yaml string.unquoted.plain.out.yaml entity.name.tag.yaml", - "r": { - "dark_plus": "entity.name.tag: #569CD6", - "light_plus": "entity.name.tag: #800000", - "dark_vs": "entity.name.tag: #569CD6", - "light_vs": "entity.name.tag: #800000", - "hc_black": "entity.name.tag: #569CD6" - } - }, - { - "c": ":", - "t": "source.yaml punctuation.separator.key-value.mapping.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Mary Smith", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "-", - "t": "source.yaml punctuation.definition.block.sequence.item.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": " ", - "t": "source.yaml", - "r": { - "dark_plus": "default: #D4D4D4", - "light_plus": "default: #000000", - "dark_vs": "default: #D4D4D4", - "light_vs": "default: #000000", - "hc_black": "default: #FFFFFF" - } - }, - { - "c": "Susan Williams", - "t": "source.yaml string.unquoted.plain.out.yaml", - "r": { - "dark_plus": "string: #CE9178", - "light_plus": "string.unquoted.plain.out.yaml: #0000FF", - "dark_vs": "string: #CE9178", - "light_vs": "string.unquoted.plain.out.yaml: #0000FF", - "hc_black": "string: #CE9178" - } - } -] From d577c4b18dab088bb55faf48309f65380684aa61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 12:59:42 +0100 Subject: [PATCH 102/171] remove colorize-tests extension usage --- .vscode/launch.json | 18 ------------------ build/gulpfile.extensions.js | 1 - build/lib/extensions.ts | 1 - build/npm/dirs.js | 1 - scripts/test-integration.bat | 4 ---- scripts/test-integration.sh | 4 ---- 6 files changed, 29 deletions(-) diff --git a/.vscode/launch.json b/.vscode/launch.json index 11c578b992d..36f583484b7 100644 --- a/.vscode/launch.json +++ b/.vscode/launch.json @@ -138,24 +138,6 @@ "order": 4 } }, - { - "type": "extensionHost", - "request": "launch", - "name": "VS Code Tokenizer Tests", - "runtimeExecutable": "${execPath}", - "args": [ - "${workspaceFolder}/extensions/vscode-colorize-tests/test", - "--extensionDevelopmentPath=${workspaceFolder}/extensions/vscode-colorize-tests", - "--extensionTestsPath=${workspaceFolder}/extensions/vscode-colorize-tests/out" - ], - "outFiles": [ - "${workspaceFolder}/out/**/*.js" - ], - "presentation": { - "group": "5_tests", - "order": 5 - } - }, { "type": "extensionHost", "request": "launch", diff --git a/build/gulpfile.extensions.js b/build/gulpfile.extensions.js index 06b4672bd71..dd057a7fe72 100644 --- a/build/gulpfile.extensions.js +++ b/build/gulpfile.extensions.js @@ -64,7 +64,6 @@ const compilations = [ 'typescript-language-features/test-workspace/tsconfig.json', 'typescript-language-features/tsconfig.json', 'vscode-api-tests/tsconfig.json', - 'vscode-colorize-tests/tsconfig.json', 'vscode-custom-editor-tests/tsconfig.json', 'vscode-notebook-tests/tsconfig.json', 'vscode-test-resolver/tsconfig.json' diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts index 62bd5750ee0..ec683962805 100644 --- a/build/lib/extensions.ts +++ b/build/lib/extensions.ts @@ -230,7 +230,6 @@ export function fromMarketplace(extensionName: string, version: string, metadata } const excludedExtensions = [ 'vscode-api-tests', - 'vscode-colorize-tests', 'vscode-test-resolver', 'ms-vscode.node-debug', 'ms-vscode.node-debug2', diff --git a/build/npm/dirs.js b/build/npm/dirs.js index 17e97a0c6d4..d4bd235aa5d 100644 --- a/build/npm/dirs.js +++ b/build/npm/dirs.js @@ -38,7 +38,6 @@ exports.dirs = [ 'extensions/testing-editor-contributions', 'extensions/typescript-language-features', 'extensions/vscode-api-tests', - 'extensions/vscode-colorize-tests', 'extensions/vscode-custom-editor-tests', 'extensions/vscode-notebook-tests', 'extensions/vscode-test-resolver', diff --git a/scripts/test-integration.bat b/scripts/test-integration.bat index a1cd80e2950..6634ee9df11 100644 --- a/scripts/test-integration.bat +++ b/scripts/test-integration.bat @@ -20,7 +20,6 @@ if "%INTEGRATION_TEST_ELECTRON_PATH%"=="" ( :: because we run extension tests from their source folders :: and the build bundles extensions into .build webpacked call yarn gulp compile-extension:vscode-api-tests^ - compile-extension:vscode-colorize-tests^ compile-extension:markdown-language-features^ compile-extension:typescript-language-features^ compile-extension:vscode-custom-editor-tests^ @@ -51,9 +50,6 @@ if %errorlevel% neq 0 exit /b %errorlevel% call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\workspace-tests --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% if %errorlevel% neq 0 exit /b %errorlevel% -call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-colorize-tests\test --extensionDevelopmentPath=%~dp0\..\extensions\vscode-colorize-tests --extensionTestsPath=%~dp0\..\extensions\vscode-colorize-tests\out --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% -if %errorlevel% neq 0 exit /b %errorlevel% - REM call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% REM if %errorlevel% neq 0 exit /b %errorlevel% diff --git a/scripts/test-integration.sh b/scripts/test-integration.sh index 90fa63ea089..3bb8dce32bc 100755 --- a/scripts/test-integration.sh +++ b/scripts/test-integration.sh @@ -27,7 +27,6 @@ else # because we run extension tests from their source folders # and the build bundles extensions into .build webpacked yarn gulp compile-extension:vscode-api-tests \ - compile-extension:vscode-colorize-tests \ compile-extension:vscode-custom-editor-tests \ compile-extension:vscode-notebook-tests \ compile-extension:markdown-language-features \ @@ -73,9 +72,6 @@ after_suite #"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-api-tests/testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=$ROOT/extensions/vscode-api-tests --extensionTestsPath=$ROOT/extensions/vscode-api-tests/out/workspace-tests --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR #after_suite -"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/vscode-colorize-tests/test --extensionDevelopmentPath=$ROOT/extensions/vscode-colorize-tests --extensionTestsPath=$ROOT/extensions/vscode-colorize-tests/out --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR -after_suite - "$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/markdown-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR after_suite From 6f9f6f806c195ec2de52383bb822f486e784a5d1 Mon Sep 17 00:00:00 2001 From: Ladislau Szomoru <3372902+lszomoru@users.noreply.github.com> Date: Fri, 15 Jan 2021 13:00:03 +0100 Subject: [PATCH 103/171] Azure DevOps pipeline artifacts (#114405) --- .../darwin/product-build-darwin.yml | 15 ++++++++++++++ build/azure-pipelines/linux/alpine/publish.sh | 2 +- .../linux/product-build-alpine.yml | 10 ++++++++++ .../linux/product-build-linux.yml | 20 +++++++++++++++++++ build/azure-pipelines/linux/publish.sh | 6 +++++- .../linux/snap-build-linux.yml | 8 ++++++++ .../azure-pipelines/web/product-build-web.yml | 5 +++++ .../win32/product-build-win32.yml | 14 ++++++------- 8 files changed, 71 insertions(+), 9 deletions(-) diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml index 15c8768e743..46dd51d172b 100644 --- a/build/azure-pipelines/darwin/product-build-darwin.yml +++ b/build/azure-pipelines/darwin/product-build-darwin.yml @@ -334,6 +334,21 @@ steps: displayName: Publish condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + - publish: $(Agent.BuildDirectory)/VSCode-darwin-$(VSCODE_ARCH).zip + artifact: vscode-darwin-$(VSCODE_ARCH) + displayName: Publish archive + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + + - publish: $(Agent.BuildDirectory)/vscode-server-darwin.zip + artifact: vscode-server-darwin-$(VSCODE_ARCH) + displayName: Publish server archive + condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false')) + + - publish: $(Agent.BuildDirectory)/vscode-server-darwin-web.zip + artifact: vscode-server-darwin-$(VSCODE_ARCH)-web + displayName: Publish web server archive + condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), ne(variables['VSCODE_PUBLISH'], 'false')) + - script: | AZURE_STORAGE_ACCESS_KEY="$(ticino-storage-key)" \ VSCODE_ARCH="$(VSCODE_ARCH)" \ diff --git a/build/azure-pipelines/linux/alpine/publish.sh b/build/azure-pipelines/linux/alpine/publish.sh index 4bf874c63c3..2f5647d1ea3 100755 --- a/build/azure-pipelines/linux/alpine/publish.sh +++ b/build/azure-pipelines/linux/alpine/publish.sh @@ -22,7 +22,7 @@ SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web" SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz" SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME" -rm -rf $ROOT/vscode-server-*.tar.* +rm -rf $ROOT/vscode-server-*-web.tar.* (cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" diff --git a/build/azure-pipelines/linux/product-build-alpine.yml b/build/azure-pipelines/linux/product-build-alpine.yml index 03387216c8e..a2bbb119bfb 100644 --- a/build/azure-pipelines/linux/product-build-alpine.yml +++ b/build/azure-pipelines/linux/product-build-alpine.yml @@ -123,6 +123,16 @@ steps: displayName: Publish condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + - publish: $(Agent.BuildDirectory)/vscode-server-linux-alpine.tar.gz + artifact: vscode-server-linux-alpine + displayName: Publish server archive + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + + - publish: $(Agent.BuildDirectory)/vscode-server-linux-alpine-web.tar.gz + artifact: vscode-server-linux-alpine-web + displayName: Publish web server archive + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 displayName: "Component Detection" continueOnError: true diff --git a/build/azure-pipelines/linux/product-build-linux.yml b/build/azure-pipelines/linux/product-build-linux.yml index d10924a5546..557c42662ac 100644 --- a/build/azure-pipelines/linux/product-build-linux.yml +++ b/build/azure-pipelines/linux/product-build-linux.yml @@ -254,6 +254,26 @@ steps: displayName: Publish condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + - publish: $(DEB_PATH) + artifact: vscode-linux-deb-$(VSCODE_ARCH) + displayName: Publish deb package + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + + - publish: $(RPM_PATH) + artifact: vscode-linux-rpm-$(VSCODE_ARCH) + displayName: Publish rpm package + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + + - publish: $(Agent.BuildDirectory)/vscode-server-linux-$(VSCODE_ARCH).tar.gz + artifact: vscode-server-linux-$(VSCODE_ARCH) + displayName: Publish server archive + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + + - publish: $(Agent.BuildDirectory)/vscode-server-linux-$(VSCODE_ARCH)-web.tar.gz + artifact: vscode-server-linux-$(VSCODE_ARCH)-web + displayName: Publish web server archive + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) + - task: PublishPipelineArtifact@0 displayName: "Publish Pipeline Artifact" inputs: diff --git a/build/azure-pipelines/linux/publish.sh b/build/azure-pipelines/linux/publish.sh index 5b86e843082..6d748c6e340 100755 --- a/build/azure-pipelines/linux/publish.sh +++ b/build/azure-pipelines/linux/publish.sh @@ -32,7 +32,7 @@ SERVER_BUILD_NAME="vscode-server-$PLATFORM_LINUX-web" SERVER_TARBALL_FILENAME="vscode-server-$PLATFORM_LINUX-web.tar.gz" SERVER_TARBALL_PATH="$ROOT/$SERVER_TARBALL_FILENAME" -rm -rf $ROOT/vscode-server-*.tar.* +rm -rf $ROOT/vscode-server-*-web.tar.* (cd $ROOT && mv $LEGACY_SERVER_BUILD_NAME $SERVER_BUILD_NAME && tar --owner=0 --group=0 -czf $SERVER_TARBALL_PATH $SERVER_BUILD_NAME) node build/azure-pipelines/common/createAsset.js "server-$PLATFORM_LINUX-web" archive-unsigned "$SERVER_TARBALL_FILENAME" "$SERVER_TARBALL_PATH" @@ -69,3 +69,7 @@ mkdir -p $REPO/.build/linux/snap-tarball SNAP_TARBALL_PATH="$REPO/.build/linux/snap-tarball/snap-$VSCODE_ARCH.tar.gz" rm -rf $SNAP_TARBALL_PATH (cd .build/linux && tar -czf $SNAP_TARBALL_PATH snap) + +# Export DEB_PATH, RPM_PATH +echo "##vso[task.setvariable variable=DEB_PATH]$DEB_PATH" +echo "##vso[task.setvariable variable=RPM_PATH]$RPM_PATH" diff --git a/build/azure-pipelines/linux/snap-build-linux.yml b/build/azure-pipelines/linux/snap-build-linux.yml index e0f2d2c6e2a..09c5488f22e 100644 --- a/build/azure-pipelines/linux/snap-build-linux.yml +++ b/build/azure-pipelines/linux/snap-build-linux.yml @@ -54,3 +54,11 @@ steps: AZURE_DOCUMENTDB_MASTERKEY="$(builds-docdb-key-readwrite)" \ AZURE_STORAGE_ACCESS_KEY_2="$(vscode-storage-key)" \ node build/azure-pipelines/common/createAsset.js "linux-snap-$(VSCODE_ARCH)" package "$SNAP_FILENAME" "$SNAP_PATH" + + # Export SNAP_PATH + echo "##vso[task.setvariable variable=SNAP_PATH]$SNAP_PATH" + + - publish: $(SNAP_PATH) + artifact: vscode-linux-snap-$(VSCODE_ARCH) + displayName: Publish snap package + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) diff --git a/build/azure-pipelines/web/product-build-web.yml b/build/azure-pipelines/web/product-build-web.yml index 035a6e37163..05aa68fe126 100644 --- a/build/azure-pipelines/web/product-build-web.yml +++ b/build/azure-pipelines/web/product-build-web.yml @@ -123,3 +123,8 @@ steps: VSCODE_MIXIN_PASSWORD="$(github-distro-mixin-password)" \ ./build/azure-pipelines/web/publish.sh displayName: Publish + + - publish: $(Agent.BuildDirectory)/vscode-web.tar.gz + artifact: vscode-web-standalone + displayName: Publish web archive + condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) diff --git a/build/azure-pipelines/win32/product-build-win32.yml b/build/azure-pipelines/win32/product-build-win32.yml index ee403c4012a..df1c5b7994a 100644 --- a/build/azure-pipelines/win32/product-build-win32.yml +++ b/build/azure-pipelines/win32/product-build-win32.yml @@ -296,28 +296,28 @@ steps: condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) - publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\archive\VSCode-win32-$(VSCODE_ARCH).zip - artifact: VSCode-win32-$(VSCODE_ARCH).zip + artifact: vscode-win32-$(VSCODE_ARCH) displayName: Publish archive condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) - publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\system-setup\VSCodeSetup.exe - artifact: VSCodeSetup-$(VSCODE_ARCH).exe + artifact: vscode-win32-$(VSCODE_ARCH)-setup displayName: Publish system setup condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) - publish: $(System.DefaultWorkingDirectory)\.build\win32-$(VSCODE_ARCH)\user-setup\VSCodeSetup.exe - artifact: VSCodeUserSetup-$(VSCODE_ARCH).exe + artifact: vscode-win32-$(VSCODE_ARCH)-user-setup displayName: Publish user setup condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false')) - publish: $(System.DefaultWorkingDirectory)\.build\vscode-server-win32-$(VSCODE_ARCH).zip - artifact: vscode-server-win32-$(VSCODE_ARCH).zip - displayName: Publish server + artifact: vscode-server-win32-$(VSCODE_ARCH) + displayName: Publish server archive condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64')) - publish: $(System.DefaultWorkingDirectory)\.build\vscode-server-win32-$(VSCODE_ARCH)-web.zip - artifact: vscode-server-win32-$(VSCODE_ARCH)-web.zip - displayName: Publish web server + artifact: vscode-server-win32-$(VSCODE_ARCH)-web + displayName: Publish web server archive condition: and(succeeded(), ne(variables['VSCODE_PUBLISH'], 'false'), ne(variables['VSCODE_ARCH'], 'arm64')) - task: ms.vss-governance-buildtask.governance-build-task-component-detection.ComponentGovernanceComponentDetection@0 From d952c81817650a545eb24db0867340cb97aabae5 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 15 Jan 2021 13:25:52 +0100 Subject: [PATCH 104/171] Fix #114379 --- .../workbench/contrib/extensions/browser/media/extension.css | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/src/vs/workbench/contrib/extensions/browser/media/extension.css b/src/vs/workbench/contrib/extensions/browser/media/extension.css index 0502ce085e5..7106733d6eb 100644 --- a/src/vs/workbench/contrib/extensions/browser/media/extension.css +++ b/src/vs/workbench/contrib/extensions/browser/media/extension.css @@ -179,3 +179,7 @@ .extension-list-item > .details > .footer > .monaco-action-bar > .actions-container .extension-action.label { max-width: 150px; } + +.extension-list-item .footer .monaco-action-bar .action-item.action-dropdown-item > .monaco-dropdown { + margin-right: 0px; +} From 55325988a070a9c0f19ddd0410b683e7f5d926d4 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 13:28:09 +0100 Subject: [PATCH 105/171] shared process - basic message port tests --- .../parts/ipc/test/browser/ipc.mp.test.ts | 58 +++++++++++++++++++ .../ipc/test/electron-sandbox/ipc.mp.test.ts | 28 +++++++++ 2 files changed, 86 insertions(+) create mode 100644 src/vs/base/parts/ipc/test/browser/ipc.mp.test.ts create mode 100644 src/vs/base/parts/ipc/test/electron-sandbox/ipc.mp.test.ts diff --git a/src/vs/base/parts/ipc/test/browser/ipc.mp.test.ts b/src/vs/base/parts/ipc/test/browser/ipc.mp.test.ts new file mode 100644 index 00000000000..765c4291e26 --- /dev/null +++ b/src/vs/base/parts/ipc/test/browser/ipc.mp.test.ts @@ -0,0 +1,58 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as assert from 'assert'; +import { Event } from 'vs/base/common/event'; +import { CancellationToken } from 'vs/base/common/cancellation'; +import { Client as MessagePortClient } from 'vs/base/parts/ipc/browser/ipc.mp'; + +suite('IPC, MessagePorts', () => { + + test('message passing', async () => { + const { port1, port2 } = new MessageChannel(); + + const client1 = new MessagePortClient(port1, 'client1'); + const client2 = new MessagePortClient(port2, 'client2'); + + client1.registerChannel('client1', { + call(_: unknown, command: string, arg: any, cancellationToken: CancellationToken): Promise { + switch (command) { + case 'testMethodClient1': return Promise.resolve('success1'); + default: return Promise.reject(new Error('not implemented')); + } + }, + + listen(_: unknown, event: string, arg?: any): Event { + switch (event) { + default: throw new Error('not implemented'); + } + } + }); + + client2.registerChannel('client2', { + call(_: unknown, command: string, arg: any, cancellationToken: CancellationToken): Promise { + switch (command) { + case 'testMethodClient2': return Promise.resolve('success2'); + default: return Promise.reject(new Error('not implemented')); + } + }, + + listen(_: unknown, event: string, arg?: any): Event { + switch (event) { + default: throw new Error('not implemented'); + } + } + }); + + const channelClient1 = client2.getChannel('client1'); + assert.equal(await channelClient1.call('testMethodClient1'), 'success1'); + + const channelClient2 = client1.getChannel('client2'); + assert.equal(await channelClient2.call('testMethodClient2'), 'success2'); + + client1.dispose(); + client2.dispose(); + }); +}); diff --git a/src/vs/base/parts/ipc/test/electron-sandbox/ipc.mp.test.ts b/src/vs/base/parts/ipc/test/electron-sandbox/ipc.mp.test.ts new file mode 100644 index 00000000000..11890027969 --- /dev/null +++ b/src/vs/base/parts/ipc/test/electron-sandbox/ipc.mp.test.ts @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as assert from 'assert'; +import { Client as MessagePortClient } from 'vs/base/parts/ipc/browser/ipc.mp'; + +suite('IPC, MessagePorts', () => { + + test('message port close event', async () => { + const { port1, port2 } = new MessageChannel(); + + new MessagePortClient(port1, 'client1'); + const client2 = new MessagePortClient(port2, 'client2'); + + // This test ensures that Electron's API for the close event + // does not break because we rely on it to dispose client + // connections from the server. + // + // This event is not provided by browser MessagePort API though. + const whenClosed = new Promise(resolve => port1.addEventListener('close', () => resolve(true))); + + client2.dispose(); + + assert.ok(await whenClosed); + }); +}); From 217aab28facce86696ca0fde7981db027b0ce421 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 15 Jan 2021 13:43:04 +0100 Subject: [PATCH 106/171] breakpoint polish condition context keys #113805 --- src/vs/workbench/contrib/debug/browser/breakpointsView.ts | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/vs/workbench/contrib/debug/browser/breakpointsView.ts b/src/vs/workbench/contrib/debug/browser/breakpointsView.ts index c129b52c328..4fb3fead12a 100644 --- a/src/vs/workbench/contrib/debug/browser/breakpointsView.ts +++ b/src/vs/workbench/contrib/debug/browser/breakpointsView.ts @@ -215,8 +215,8 @@ export class BreakpointsView extends ViewPane { element instanceof FunctionBreakpoint ? 'functionBreakpoint' : element instanceof DataBreakpoint ? 'dataBreakpoint' : undefined; this.breakpointItemType.set(type); const session = this.debugService.getViewModel().focusedSession; - const conditionNotSupported = (element instanceof ExceptionBreakpoint && !element.supportsCondition) || (session && session.capabilities.supportsConditionalBreakpoints); - this.breakpointSupportsCondition.set(!conditionNotSupported); + const conditionSupported = element instanceof ExceptionBreakpoint ? element.supportsCondition : (!session || !!session.capabilities.supportsConditionalBreakpoints); + this.breakpointSupportsCondition.set(conditionSupported); const secondary: IAction[] = []; const actionsDisposable = createAndFillInContextMenuActions(this.menu, { arg: e.element, shouldForwardArgs: false }, { primary: [], secondary }, g => /^inline/.test(g)); @@ -511,8 +511,6 @@ class FunctionBreakpointsRenderer implements IListRenderer { this.debugService.enableOrDisableBreakpoints(!data.context.enabled, data.context); })); @@ -551,6 +549,7 @@ class FunctionBreakpointsRenderer implements IListRenderer /^inline/.test(g))); data.actionBar.clear(); data.actionBar.push(primary, { icon: true, label: false }); From 4af3c1c0576bff6c259d8cf9114a0c57e7aca28d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 13:48:53 +0100 Subject: [PATCH 107/171] get grammar extensions from marketplace --- product.json | 600 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 600 insertions(+) diff --git a/product.json b/product.json index 4e590eaea5e..8880a19ed9e 100644 --- a/product.json +++ b/product.json @@ -283,6 +283,606 @@ }, "publisherDisplayName": "Visual Studio Code" } + }, + { + "name": "vscode.bat", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-bat", + "metadata": { + "id": "5ef96c58-076f-4167-8e40-62c9deb00496", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.clojure", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-clojure", + "metadata": { + "id": "a3f39981-7f3b-4551-ac3c-b035b5ebbcdd", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.coffeescript", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-coffeescript", + "metadata": { + "id": "e87e8467-be46-4415-828b-c6dfa0edf49e", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.cpp", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-cpp", + "metadata": { + "id": "a6662f44-4dd3-44fd-b350-71a114e294e0", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.csharp", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-csharp", + "metadata": { + "id": "78276b51-0b7c-406e-9ef0-0e76e214268a", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.css", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-css", + "metadata": { + "id": "8d254d21-7f6c-4e1a-8080-6facb0b4a112", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.docker", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-docker-basics", + "metadata": { + "id": "60fb6831-fe3c-4156-8337-be187754af16", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.fsharp", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-fsharp", + "metadata": { + "id": "c19c78df-b7ee-4215-9a92-65b660c9f7da", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.go", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-go-basics", + "metadata": { + "id": "27a645c4-6dd6-4ab8-9ad0-e553f407ebcb", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.groovy", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-groovy", + "metadata": { + "id": "3576957b-2772-40cb-b611-aca6c9eb86b8", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.handlebars", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-handlebars", + "metadata": { + "id": "d6417a3f-8fdc-454f-af4a-5fcae919a0f0", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.hlsl", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-hlsl", + "metadata": { + "id": "645dc6fd-a97e-43bf-a2b4-6fb4b9fc9d56", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.html", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-html", + "metadata": { + "id": "a48fa1a1-d2cb-411d-982f-58204aeda3b6", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.ini", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-ini", + "metadata": { + "id": "b6b3f2aa-0f1d-4ad9-b111-ebb6e64b2e92", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.java", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-java", + "metadata": { + "id": "cbad5645-52ce-44d6-9347-abb2dc9e73ba", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.javascript", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-javascript", + "metadata": { + "id": "001596fc-3cce-4107-9afb-9f7446197833", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.json", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-json", + "metadata": { + "id": "75ce34ed-25ca-4fb9-9a48-cf1d3b64e572", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.less", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-less", + "metadata": { + "id": "51955aa0-2378-436e-bfcd-3eff9e51f16f", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.log", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-log", + "metadata": { + "id": "7aac0f9a-cd3f-425d-999b-4aaab621f0ff", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.lua", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-lua", + "metadata": { + "id": "ce7c59a3-3ded-46ec-8069-9fa31a7956a5", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.make", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-make", + "metadata": { + "id": "9aeca0fb-e117-4878-b281-97c27ee9a4fa", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.markdown", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-markdown-basics", + "metadata": { + "id": "48366bcf-8bb7-4d03-9bc1-f2b5b42a76f0", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.objective-c", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-objective-c", + "metadata": { + "id": "8530e0ab-3251-4b58-987d-4f9cfe88cb8e", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.perl", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-perl", + "metadata": { + "id": "e62a62b4-536f-40a9-9b7e-d69c25d3ea6c", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.php", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-php", + "metadata": { + "id": "99941959-74b3-4402-934e-cdb574dedcdc", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.powershell", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-powershell", + "metadata": { + "id": "06da1f78-b70e-457c-9669-5e05c7dd67ea", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.pug", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-pug", + "metadata": { + "id": "48e7405c-0144-4dc4-882f-251583613d8b", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.r", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-r", + "metadata": { + "id": "2a76387c-bbb7-4c62-abfc-cc7a5d2c6bbb", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.razor", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-razor", + "metadata": { + "id": "0255f109-80dc-4a5f-9d4b-426b60c66fdc", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.ruby", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-ruby", + "metadata": { + "id": "a123fa18-04ea-4114-836a-d3fecb42d255", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.rust", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-rust", + "metadata": { + "id": "ec316b3a-7476-4de2-9b92-59817cc94c83", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.scss", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-scss", + "metadata": { + "id": "23ba4696-bca8-4dda-8f19-f3e4bd1fc891", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.shaderlab", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-shaderlab", + "metadata": { + "id": "533972be-b97b-4946-a8c7-cce26331ad1e", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.shellscript", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-shellscript", + "metadata": { + "id": "76ed3931-c6e9-4275-bb5a-f16f0a7b0c49", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.sql", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-sql", + "metadata": { + "id": "c6209a42-5a9e-4c89-9a67-e96489c6b300", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.swift", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-swift", + "metadata": { + "id": "45323854-ee20-4b4b-9d73-cbf5ec79df69", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.typescript", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-typescript-basics", + "metadata": { + "id": "948e51ad-9f29-487e-9064-4853ec3b8fb1", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.vb", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-vb", + "metadata": { + "id": "3c3f497b-04df-4bed-a9f8-41f6b4a273b8", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.xml", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-xml", + "metadata": { + "id": "a74c571d-ba7b-42c2-b68c-7316f4616d79", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } + }, + { + "name": "vscode.yaml", + "version": "1.0.0", + "repo": "https://github.com/microsoft/vscode-yaml", + "metadata": { + "id": "98e2953b-f343-4064-9c76-1a4505017283", + "publisherId": { + "publisherId": "ecbc86dd-2ea2-45a9-a653-f7a80147dd9d", + "publisherName": "vscode", + "displayName": "Visual Studio Code", + "flags": "verified" + }, + "publisherDisplayName": "Visual Studio Code" + } } ], "webBuiltInExtensions": [ From d472f9d503cef83e5894acf1ac17d7fe36ac1d9e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 13:56:51 +0100 Subject: [PATCH 108/171] remove devops continuous build --- azure-pipelines.yml | 23 ----- .../darwin/continuous-build-darwin.yml | 84 ---------------- .../linux/continuous-build-linux.yml | 97 ------------------- .../win32/continuous-build-win32.yml | 92 ------------------ 4 files changed, 296 deletions(-) delete mode 100644 azure-pipelines.yml delete mode 100644 build/azure-pipelines/darwin/continuous-build-darwin.yml delete mode 100644 build/azure-pipelines/linux/continuous-build-linux.yml delete mode 100644 build/azure-pipelines/win32/continuous-build-win32.yml diff --git a/azure-pipelines.yml b/azure-pipelines.yml deleted file mode 100644 index cce8119d463..00000000000 --- a/azure-pipelines.yml +++ /dev/null @@ -1,23 +0,0 @@ -jobs: -- job: Windows - pool: - vmImage: VS2017-Win2016 - steps: - - template: build/azure-pipelines/win32/continuous-build-win32.yml - -- job: Linux - pool: - vmImage: 'Ubuntu-16.04' - steps: - - template: build/azure-pipelines/linux/continuous-build-linux.yml - -- job: macOS - pool: - vmImage: macOS-latest - steps: - - template: build/azure-pipelines/darwin/continuous-build-darwin.yml - -trigger: - branches: - exclude: - - electron-11.x.y diff --git a/build/azure-pipelines/darwin/continuous-build-darwin.yml b/build/azure-pipelines/darwin/continuous-build-darwin.yml deleted file mode 100644 index 75bd292fe42..00000000000 --- a/build/azure-pipelines/darwin/continuous-build-darwin.yml +++ /dev/null @@ -1,84 +0,0 @@ -steps: - - task: NodeTool@0 - inputs: - versionSpec: "12.18.3" - - - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2 - inputs: - versionSpec: "1.x" - - - script: | - mkdir -p .build - node build/azure-pipelines/common/computeNodeModulesCacheKey.js > .build/yarnlockhash - displayName: Prepare yarn cache flags - - - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 - inputs: - keyfile: ".build/yarnlockhash" - targetfolder: "**/node_modules, !**/node_modules/**/node_modules" - vstsFeed: "vscode-build-cache" - - - script: | - CHILD_CONCURRENCY=1 yarn --frozen-lockfile - displayName: Install Dependencies - condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) - - - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 - inputs: - keyfile: ".build/yarnlockhash" - targetfolder: "**/node_modules, !**/node_modules/**/node_modules" - vstsFeed: "vscode-build-cache" - condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) - - - script: | - set -e - yarn postinstall - displayName: Run postinstall scripts - condition: and(succeeded(), eq(variables['CacheRestored'], 'true')) - - - script: | - yarn electron x64 - displayName: Download Electron - - - script: | - yarn monaco-compile-check - displayName: Run Monaco Editor Checks - - - script: | - yarn valid-layers-check - displayName: Run Valid Layers Checks - - - script: | - yarn compile - displayName: Compile Sources - - - script: | - yarn download-builtin-extensions - displayName: Download Built-in Extensions - - - script: | - ./scripts/test.sh --tfs "Unit Tests" - displayName: Run Unit Tests (Electron) - - - script: | - yarn test-browser --browser chromium --browser webkit --browser firefox --tfs "Browser Unit Tests" - displayName: Run Unit Tests (Browser) - - - script: | - ./scripts/test-integration.sh --tfs "Integration Tests" - displayName: Run Integration Tests (Electron) - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: crash-dump-macos - targetPath: .build/crashes - displayName: "Publish Crash Reports" - continueOnError: true - condition: failed() - - - task: PublishTestResults@2 - displayName: Publish Tests Results - inputs: - testResultsFiles: "*-results.xml" - searchFolder: "$(Build.ArtifactStagingDirectory)/test-results" - condition: succeededOrFailed() diff --git a/build/azure-pipelines/linux/continuous-build-linux.yml b/build/azure-pipelines/linux/continuous-build-linux.yml deleted file mode 100644 index 62712e07336..00000000000 --- a/build/azure-pipelines/linux/continuous-build-linux.yml +++ /dev/null @@ -1,97 +0,0 @@ -steps: - - script: | - set -e - sudo apt-get update - sudo apt-get install -y libxkbfile-dev pkg-config libsecret-1-dev libxss1 dbus xvfb libgtk-3-0 - sudo cp build/azure-pipelines/linux/xvfb.init /etc/init.d/xvfb - sudo chmod +x /etc/init.d/xvfb - sudo update-rc.d xvfb defaults - sudo service xvfb start - - - task: NodeTool@0 - inputs: - versionSpec: "12.18.3" - - - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2 - inputs: - versionSpec: "1.x" - - - script: | - mkdir -p .build - node build/azure-pipelines/common/computeNodeModulesCacheKey.js > .build/yarnlockhash - displayName: Prepare yarn cache flags - - - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 - inputs: - keyfile: ".build/yarnlockhash" - targetfolder: "**/node_modules, !**/node_modules/**/node_modules" - vstsFeed: "vscode-build-cache" - - - script: | - CHILD_CONCURRENCY=1 yarn --frozen-lockfile - displayName: Install Dependencies - condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) - - - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 - inputs: - keyfile: ".build/yarnlockhash" - targetfolder: "**/node_modules, !**/node_modules/**/node_modules" - vstsFeed: "vscode-build-cache" - condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) - - - script: | - set -e - yarn postinstall - displayName: Run postinstall scripts - condition: and(succeeded(), eq(variables['CacheRestored'], 'true')) - - - script: | - yarn electron x64 - displayName: Download Electron - - - script: | - yarn gulp hygiene - displayName: Run Hygiene Checks - - - script: | - yarn monaco-compile-check - displayName: Run Monaco Editor Checks - - - script: | - yarn valid-layers-check - displayName: Run Valid Layers Checks - - - script: | - yarn compile - displayName: Compile Sources - - - script: | - yarn download-builtin-extensions - displayName: Download Built-in Extensions - - - script: | - DISPLAY=:10 ./scripts/test.sh --tfs "Unit Tests" - displayName: Run Unit Tests (Electron) - - - script: | - DISPLAY=:10 yarn test-browser --browser chromium --tfs "Browser Unit Tests" - displayName: Run Unit Tests (Browser) - - - script: | - DISPLAY=:10 ./scripts/test-integration.sh --tfs "Integration Tests" - displayName: Run Integration Tests (Electron) - - - task: PublishPipelineArtifact@0 - inputs: - artifactName: crash-dump-linux - targetPath: .build/crashes - displayName: "Publish Crash Reports" - continueOnError: true - condition: failed() - - - task: PublishTestResults@2 - displayName: Publish Tests Results - inputs: - testResultsFiles: "*-results.xml" - searchFolder: "$(Build.ArtifactStagingDirectory)/test-results" - condition: succeededOrFailed() diff --git a/build/azure-pipelines/win32/continuous-build-win32.yml b/build/azure-pipelines/win32/continuous-build-win32.yml deleted file mode 100644 index ff6d543e036..00000000000 --- a/build/azure-pipelines/win32/continuous-build-win32.yml +++ /dev/null @@ -1,92 +0,0 @@ -steps: - - task: NodeTool@0 - inputs: - versionSpec: "12.18.3" - - - task: geeklearningio.gl-vsts-tasks-yarn.yarn-installer-task.YarnInstaller@2 - inputs: - versionSpec: "1.x" - - - task: UsePythonVersion@0 - inputs: - versionSpec: "2.x" - addToPath: true - - - powershell: | - mkdir -Force .build - node build/azure-pipelines/common/computeNodeModulesCacheKey.js > .build/yarnlockhash - displayName: Prepare yarn cache flags - - - task: 1ESLighthouseEng.PipelineArtifactCaching.RestoreCacheV1.RestoreCache@1 - inputs: - keyfile: ".build/yarnlockhash" - targetfolder: "**/node_modules, !**/node_modules/**/node_modules" - vstsFeed: "vscode-build-cache" - - - powershell: | - yarn --frozen-lockfile - env: - CHILD_CONCURRENCY: "1" - displayName: Install Dependencies - condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) - - - task: 1ESLighthouseEng.PipelineArtifactCaching.SaveCacheV1.SaveCache@1 - inputs: - keyfile: ".build/yarnlockhash" - targetfolder: "**/node_modules, !**/node_modules/**/node_modules" - vstsFeed: "vscode-build-cache" - condition: and(succeeded(), ne(variables['CacheRestored'], 'true')) - - - powershell: | - . build/azure-pipelines/win32/exec.ps1 - $ErrorActionPreference = "Stop" - exec { yarn postinstall } - displayName: Run postinstall scripts - condition: and(succeeded(), eq(variables['CacheRestored'], 'true')) - - - powershell: | - yarn electron - displayName: Download Electron - - - powershell: | - yarn monaco-compile-check - displayName: Run Monaco Editor Checks - - - script: | - yarn valid-layers-check - displayName: Run Valid Layers Checks - - - powershell: | - yarn compile - displayName: Compile Sources - - - powershell: | - yarn download-builtin-extensions - displayName: Download Built-in Extensions - - - powershell: | - .\scripts\test.bat --tfs "Unit Tests" - displayName: Run Unit Tests (Electron) - - - powershell: | - yarn test-browser --browser chromium --browser firefox --tfs "Browser Unit Tests" - displayName: Run Unit Tests (Browser) - - - powershell: | - .\scripts\test-integration.bat --tfs "Integration Tests" - displayName: Run Integration Tests (Electron) - - - task: PublishPipelineArtifact@0 - displayName: "Publish Crash Reports" - inputs: - artifactName: crash-dump-windows - targetPath: .build\crashes - continueOnError: true - condition: failed() - - - task: PublishTestResults@2 - displayName: Publish Tests Results - inputs: - testResultsFiles: "*-results.xml" - searchFolder: "$(Build.ArtifactStagingDirectory)/test-results" - condition: succeededOrFailed() From 0442b734227974fc25f10e5f6da03eb6d319ccae Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 13:58:38 +0100 Subject: [PATCH 109/171] remove devops ci badge --- README.md | 1 - 1 file changed, 1 deletion(-) diff --git a/README.md b/README.md index ce1a7132ef8..ec206f09460 100644 --- a/README.md +++ b/README.md @@ -1,5 +1,4 @@ # Visual Studio Code - Open Source ("Code - OSS") -[![Build Status](https://dev.azure.com/vscode/VSCode/_apis/build/status/VS%20Code?branchName=master)](https://aka.ms/vscode-builds) [![Feature Requests](https://img.shields.io/github/issues/microsoft/vscode/feature-request.svg)](https://github.com/microsoft/vscode/issues?q=is%3Aopen+is%3Aissue+label%3Afeature-request+sort%3Areactions-%2B1-desc) [![Bugs](https://img.shields.io/github/issues/microsoft/vscode/bug.svg)](https://github.com/microsoft/vscode/issues?utf8=✓&q=is%3Aissue+is%3Aopen+label%3Abug) [![Gitter](https://img.shields.io/badge/chat-on%20gitter-yellow.svg)](https://gitter.im/Microsoft/vscode) From 65582ba33d4526117dbb751944787d316a49cc9c Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Fri, 15 Jan 2021 14:00:13 +0100 Subject: [PATCH 110/171] Fix #114326 --- .../browser/parts/views/viewPaneContainer.ts | 29 +++++++++++-------- 1 file changed, 17 insertions(+), 12 deletions(-) diff --git a/src/vs/workbench/browser/parts/views/viewPaneContainer.ts b/src/vs/workbench/browser/parts/views/viewPaneContainer.ts index f8a3e56dc00..3f905031fde 100644 --- a/src/vs/workbench/browser/parts/views/viewPaneContainer.ts +++ b/src/vs/workbench/browser/parts/views/viewPaneContainer.ts @@ -590,28 +590,33 @@ export class ViewPaneContainer extends Component implements IViewPaneContainer { } getSecondaryActions2(): IAction[] { + const viewPaneActions = this.isViewMergedWithContainer() ? this.paneItems[0].pane.getSecondaryActions() : []; let menuActions = this.menuActions.getSecondaryActions(); - const isViewsSubMenuAction = (action: IAction) => action instanceof SubmenuItemAction && action.item.submenu === ViewsSubMenu; - const index = menuActions.findIndex(a => isViewsSubMenuAction(a)); - const viewPaneContainerActions = this.isViewMergedWithContainer() ? this.paneItems[0].pane.getSecondaryActions() : []; - if (index !== -1) { - if (index !== 0) { - menuActions = [menuActions[index], ...menuActions.slice(0, index), ...menuActions.slice(index + 1)]; - } - if (menuActions.length === 1 && viewPaneContainerActions.length === 0) { - menuActions = (menuActions[0]).actions.slice(); + + const viewsSubmenuActionIndex = menuActions.findIndex(action => action instanceof SubmenuItemAction && action.item.submenu === ViewsSubMenu); + if (viewsSubmenuActionIndex !== -1) { + const viewsSubmenuAction = menuActions[viewsSubmenuActionIndex]; + if (viewsSubmenuAction.actions.some(({ enabled }) => enabled)) { + if (menuActions.length === 1 && viewPaneActions.length === 0) { + menuActions = viewsSubmenuAction.actions.slice(); + } else if (viewsSubmenuActionIndex !== 0) { + menuActions = [viewsSubmenuAction, ...menuActions.slice(0, viewsSubmenuActionIndex), ...menuActions.slice(viewsSubmenuActionIndex + 1)]; + } + } else { + // Remove views submenu if none of the actions are enabled + menuActions.splice(viewsSubmenuActionIndex, 1); } } - if (menuActions.length && viewPaneContainerActions.length) { + if (menuActions.length && viewPaneActions.length) { return [ ...menuActions, new Separator(), - ...viewPaneContainerActions + ...viewPaneActions ]; } - return menuActions.length ? menuActions : viewPaneContainerActions; + return menuActions.length ? menuActions : viewPaneActions; } getSecondaryActions(): IAction[] { From 62bb9b3d3fd94f4a63a9b145b9fa1b5ed4b11207 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Fri, 15 Jan 2021 14:31:40 +0100 Subject: [PATCH 111/171] shared process - adopt toggle method from management service --- .../electron-browser/sharedProcessService.ts | 2 - src/vs/workbench/common/actions.ts | 1 + .../actions/developerActions.ts | 28 ---- .../actions/developerActions.ts | 92 ++++++++---- .../electron-sandbox/desktop.contribution.ts | 138 ++++++++---------- .../electron-browser/sharedProcessService.ts | 4 - .../electron-browser/workbenchTestServices.ts | 2 - src/vs/workbench/workbench.desktop.main.ts | 7 - 8 files changed, 123 insertions(+), 151 deletions(-) delete mode 100644 src/vs/workbench/electron-browser/actions/developerActions.ts diff --git a/src/vs/platform/ipc/electron-browser/sharedProcessService.ts b/src/vs/platform/ipc/electron-browser/sharedProcessService.ts index 0f88b08c2a3..3cfe94145df 100644 --- a/src/vs/platform/ipc/electron-browser/sharedProcessService.ts +++ b/src/vs/platform/ipc/electron-browser/sharedProcessService.ts @@ -14,6 +14,4 @@ export interface ISharedProcessService { getChannel(channelName: string): IChannel; registerChannel(channelName: string, channel: IServerChannel): void; - - toggleWindow(): Promise; } diff --git a/src/vs/workbench/common/actions.ts b/src/vs/workbench/common/actions.ts index de82ce88e15..dfe61debb2e 100644 --- a/src/vs/workbench/common/actions.ts +++ b/src/vs/workbench/common/actions.ts @@ -128,5 +128,6 @@ Registry.add(Extensions.WorkbenchActions, new class implements IWorkbenchActionR export const CATEGORIES = { View: { value: localize('view', "View"), original: 'View' }, Help: { value: localize('help', "Help"), original: 'Help' }, + Preferences: { value: localize('preferences', "Preferences"), original: 'Preferences' }, Developer: { value: localize({ key: 'developer', comment: ['A developer on Code itself or someone diagnosing issues in Code'] }, "Developer"), original: 'Developer' } }; diff --git a/src/vs/workbench/electron-browser/actions/developerActions.ts b/src/vs/workbench/electron-browser/actions/developerActions.ts deleted file mode 100644 index c699748e2b2..00000000000 --- a/src/vs/workbench/electron-browser/actions/developerActions.ts +++ /dev/null @@ -1,28 +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 * as nls from 'vs/nls'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; -import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; -import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -import { CATEGORIES } from 'vs/workbench/common/actions'; - -class ToggleSharedProcessAction extends Action2 { - - constructor() { - super({ - id: 'workbench.action.toggleSharedProcess', - title: { value: nls.localize('toggleSharedProcess', "Toggle Shared Process"), original: 'Toggle Shared Process' }, - category: CATEGORIES.Developer, - f1: true - }); - } - - async run(accessor: ServicesAccessor): Promise { - return accessor.get(ISharedProcessService).toggleWindow(); - } -} - -registerAction2(ToggleSharedProcessAction); diff --git a/src/vs/workbench/electron-sandbox/actions/developerActions.ts b/src/vs/workbench/electron-sandbox/actions/developerActions.ts index 8daa9ffde0e..5b5a5c7b4a8 100644 --- a/src/vs/workbench/electron-sandbox/actions/developerActions.ts +++ b/src/vs/workbench/electron-sandbox/actions/developerActions.ts @@ -3,48 +3,82 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { Action } from 'vs/base/common/actions'; -import * as nls from 'vs/nls'; +import { localize } from 'vs/nls'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; -import { IEnvironmentService } from 'vs/platform/environment/common/environment'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; +import { Action2, MenuId } from 'vs/platform/actions/common/actions'; +import { CATEGORIES } from 'vs/workbench/common/actions'; +import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; +import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; +import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; +import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; +import { IsDevelopmentContext } from 'vs/platform/contextkey/common/contextkeys'; +import { KeyCode, KeyMod } from 'vs/base/common/keyCodes'; -export class ToggleDevToolsAction extends Action { +export class ToggleDevToolsAction extends Action2 { - static readonly ID = 'workbench.action.toggleDevTools'; - static readonly LABEL = nls.localize('toggleDevTools', "Toggle Developer Tools"); - - constructor( - id: string, - label: string, - @INativeHostService private readonly nativeHostService: INativeHostService - ) { - super(id, label); + constructor() { + super({ + id: 'workbench.action.toggleDevTools', + title: { value: localize('toggleDevTools', "Toggle Developer Tools"), original: 'Toggle Developer Tools' }, + category: CATEGORIES.Developer, + f1: true, + keybinding: { + weight: KeybindingWeight.WorkbenchContrib + 50, + when: IsDevelopmentContext, + primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_I, + mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_I } + }, + menu: { + id: MenuId.MenubarHelpMenu, + group: '5_tools', + order: 1 + } + }); } - run(): Promise { - return this.nativeHostService.toggleDevTools(); + async run(accessor: ServicesAccessor): Promise { + const nativeHostService = accessor.get(INativeHostService); + + return nativeHostService.toggleDevTools(); } } -export class ConfigureRuntimeArgumentsAction extends Action { +export class ConfigureRuntimeArgumentsAction extends Action2 { - static readonly ID = 'workbench.action.configureRuntimeArguments'; - static readonly LABEL = nls.localize('configureRuntimeArguments', "Configure Runtime Arguments"); - - constructor( - id: string, - label: string, - @IEnvironmentService private readonly environmentService: IEnvironmentService, - @IEditorService private readonly editorService: IEditorService - ) { - super(id, label); + constructor() { + super({ + id: 'workbench.action.configureRuntimeArguments', + title: { value: localize('configureRuntimeArguments', "Configure Runtime Arguments"), original: 'Configure Runtime Arguments' }, + category: CATEGORIES.Preferences, + f1: true + }); } - async run(): Promise { - await this.editorService.openEditor({ - resource: this.environmentService.argvResource, + async run(accessor: ServicesAccessor): Promise { + const editorService = accessor.get(IEditorService); + const environmentService = accessor.get(IWorkbenchEnvironmentService); + + await editorService.openEditor({ + resource: environmentService.argvResource, options: { pinned: true } }); } } + + +export class ToggleSharedProcessAction extends Action2 { + + constructor() { + super({ + id: 'workbench.action.toggleSharedProcess', + title: { value: localize('toggleSharedProcess', "Toggle Shared Process"), original: 'Toggle Shared Process' }, + category: CATEGORIES.Developer, + f1: true + }); + } + + async run(accessor: ServicesAccessor): Promise { + return accessor.get(ISharedProcessManagementService).toggleWindow(); + } +} diff --git a/src/vs/workbench/electron-sandbox/desktop.contribution.ts b/src/vs/workbench/electron-sandbox/desktop.contribution.ts index 7c5efce7623..224608f30d1 100644 --- a/src/vs/workbench/electron-sandbox/desktop.contribution.ts +++ b/src/vs/workbench/electron-sandbox/desktop.contribution.ts @@ -4,23 +4,23 @@ *--------------------------------------------------------------------------------------------*/ import { Registry } from 'vs/platform/registry/common/platform'; -import * as nls from 'vs/nls'; -import { SyncActionDescriptor, MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; +import { localize } from 'vs/nls'; +import product from 'vs/platform/product/common/product'; +import { SyncActionDescriptor, MenuRegistry, MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; import { IConfigurationRegistry, Extensions as ConfigurationExtensions, ConfigurationScope } from 'vs/platform/configuration/common/configurationRegistry'; import { IWorkbenchActionRegistry, Extensions, CATEGORIES } from 'vs/workbench/common/actions'; import { KeyMod, KeyCode } from 'vs/base/common/keyCodes'; import { isLinux, isMacintosh } from 'vs/base/common/platform'; -import { ToggleDevToolsAction, ConfigureRuntimeArgumentsAction } from 'vs/workbench/electron-sandbox/actions/developerActions'; +import { ConfigureRuntimeArgumentsAction, ToggleDevToolsAction, ToggleSharedProcessAction } from 'vs/workbench/electron-sandbox/actions/developerActions'; import { ZoomResetAction, ZoomOutAction, ZoomInAction, CloseCurrentWindowAction, SwitchWindow, QuickSwitchWindow, ReloadWindowWithExtensionsDisabledAction, NewWindowTabHandler, ShowPreviousWindowTabHandler, ShowNextWindowTabHandler, MoveWindowTabToNewWindowHandler, MergeWindowTabsHandlerHandler, ToggleWindowTabsBarHandler } from 'vs/workbench/electron-sandbox/actions/windowActions'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -import { IsDevelopmentContext, IsMacContext } from 'vs/platform/contextkey/common/contextkeys'; +import { IsMacContext } from 'vs/platform/contextkey/common/contextkeys'; import { EditorsVisibleContext, SingleEditorGroupsContext } from 'vs/workbench/common/editor'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { IJSONContributionRegistry, Extensions as JSONExtensions } from 'vs/platform/jsonschemas/common/jsonContributionRegistry'; -import product from 'vs/platform/product/common/product'; import { IJSONSchema } from 'vs/base/common/jsonSchema'; // Actions @@ -68,12 +68,12 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; (function registerMacOSNativeTabsActions(): void { if (isMacintosh) { [ - { handler: NewWindowTabHandler, id: 'workbench.action.newWindowTab', title: { value: nls.localize('newTab', "New Window Tab"), original: 'New Window Tab' } }, - { handler: ShowPreviousWindowTabHandler, id: 'workbench.action.showPreviousWindowTab', title: { value: nls.localize('showPreviousTab', "Show Previous Window Tab"), original: 'Show Previous Window Tab' } }, - { handler: ShowNextWindowTabHandler, id: 'workbench.action.showNextWindowTab', title: { value: nls.localize('showNextWindowTab', "Show Next Window Tab"), original: 'Show Next Window Tab' } }, - { handler: MoveWindowTabToNewWindowHandler, id: 'workbench.action.moveWindowTabToNewWindow', title: { value: nls.localize('moveWindowTabToNewWindow', "Move Window Tab to New Window"), original: 'Move Window Tab to New Window' } }, - { handler: MergeWindowTabsHandlerHandler, id: 'workbench.action.mergeAllWindowTabs', title: { value: nls.localize('mergeAllWindowTabs', "Merge All Windows"), original: 'Merge All Windows' } }, - { handler: ToggleWindowTabsBarHandler, id: 'workbench.action.toggleWindowTabsBar', title: { value: nls.localize('toggleWindowTabsBar', "Toggle Window Tabs Bar"), original: 'Toggle Window Tabs Bar' } } + { handler: NewWindowTabHandler, id: 'workbench.action.newWindowTab', title: { value: localize('newTab', "New Window Tab"), original: 'New Window Tab' } }, + { handler: ShowPreviousWindowTabHandler, id: 'workbench.action.showPreviousWindowTab', title: { value: localize('showPreviousTab', "Show Previous Window Tab"), original: 'Show Previous Window Tab' } }, + { handler: ShowNextWindowTabHandler, id: 'workbench.action.showNextWindowTab', title: { value: localize('showNextWindowTab', "Show Next Window Tab"), original: 'Show Next Window Tab' } }, + { handler: MoveWindowTabToNewWindowHandler, id: 'workbench.action.moveWindowTabToNewWindow', title: { value: localize('moveWindowTabToNewWindow', "Move Window Tab to New Window"), original: 'Move Window Tab to New Window' } }, + { handler: MergeWindowTabsHandlerHandler, id: 'workbench.action.mergeAllWindowTabs', title: { value: localize('mergeAllWindowTabs', "Merge All Windows"), original: 'Merge All Windows' } }, + { handler: ToggleWindowTabsBarHandler, id: 'workbench.action.toggleWindowTabsBar', title: { value: localize('toggleWindowTabsBar', "Toggle Window Tabs Bar"), original: 'Toggle Window Tabs Bar' } } ].forEach(command => { CommandsRegistry.registerCommand(command.id, command.handler); @@ -88,21 +88,10 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; // Actions: Developer (function registerDeveloperActions(): void { registry.registerWorkbenchAction(SyncActionDescriptor.from(ReloadWindowWithExtensionsDisabledAction), 'Developer: Reload With Extensions Disabled', CATEGORIES.Developer.value); - registry.registerWorkbenchAction(SyncActionDescriptor.from(ToggleDevToolsAction), 'Developer: Toggle Developer Tools', CATEGORIES.Developer.value); - KeybindingsRegistry.registerKeybindingRule({ - id: ToggleDevToolsAction.ID, - weight: KeybindingWeight.WorkbenchContrib + 50, - when: IsDevelopmentContext, - primary: KeyMod.CtrlCmd | KeyMod.Shift | KeyCode.KEY_I, - mac: { primary: KeyMod.CtrlCmd | KeyMod.Alt | KeyCode.KEY_I } - }); - })(); - - // Actions: Runtime Arguments - (function registerRuntimeArgumentsAction(): void { - const preferencesCategory = nls.localize('preferences', "Preferences"); - registry.registerWorkbenchAction(SyncActionDescriptor.from(ConfigureRuntimeArgumentsAction), 'Preferences: Configure Runtime Arguments', preferencesCategory); + registerAction2(ConfigureRuntimeArgumentsAction); + registerAction2(ToggleSharedProcessAction); + registerAction2(ToggleDevToolsAction); })(); })(); @@ -112,7 +101,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; group: '6_close', command: { id: CloseCurrentWindowAction.ID, - title: nls.localize({ key: 'miCloseWindow', comment: ['&& denotes a mnemonic'] }, "Clos&&e Window") + title: localize({ key: 'miCloseWindow', comment: ['&& denotes a mnemonic'] }, "Clos&&e Window") }, order: 4 }); @@ -121,7 +110,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; group: 'z_Exit', command: { id: 'workbench.action.quit', - title: nls.localize({ key: 'miExit', comment: ['&& denotes a mnemonic'] }, "E&&xit") + title: localize({ key: 'miExit', comment: ['&& denotes a mnemonic'] }, "E&&xit") }, order: 1, when: IsMacContext.toNegated() @@ -133,7 +122,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; group: '3_zoom', command: { id: ZoomInAction.ID, - title: nls.localize({ key: 'miZoomIn', comment: ['&& denotes a mnemonic'] }, "&&Zoom In") + title: localize({ key: 'miZoomIn', comment: ['&& denotes a mnemonic'] }, "&&Zoom In") }, order: 1 }); @@ -142,7 +131,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; group: '3_zoom', command: { id: ZoomOutAction.ID, - title: nls.localize({ key: 'miZoomOut', comment: ['&& denotes a mnemonic'] }, "&&Zoom Out") + title: localize({ key: 'miZoomOut', comment: ['&& denotes a mnemonic'] }, "&&Zoom Out") }, order: 2 }); @@ -151,7 +140,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; group: '3_zoom', command: { id: ZoomResetAction.ID, - title: nls.localize({ key: 'miZoomReset', comment: ['&& denotes a mnemonic'] }, "&&Reset Zoom") + title: localize({ key: 'miZoomReset', comment: ['&& denotes a mnemonic'] }, "&&Reset Zoom") }, order: 3 }); @@ -161,27 +150,18 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; group: '3_feedback', command: { id: 'workbench.action.openIssueReporter', - title: nls.localize({ key: 'miReportIssue', comment: ['&& denotes a mnemonic', 'Translate this to "Report Issue in English" in all languages please!'] }, "Report &&Issue") + title: localize({ key: 'miReportIssue', comment: ['&& denotes a mnemonic', 'Translate this to "Report Issue in English" in all languages please!'] }, "Report &&Issue") }, order: 3 }); } // Tools - MenuRegistry.appendMenuItem(MenuId.MenubarHelpMenu, { - group: '5_tools', - command: { - id: ToggleDevToolsAction.ID, - title: nls.localize({ key: 'miToggleDevTools', comment: ['&& denotes a mnemonic'] }, "&&Toggle Developer Tools") - }, - order: 1 - }); - MenuRegistry.appendMenuItem(MenuId.MenubarHelpMenu, { group: '5_tools', command: { id: 'workbench.action.openProcessExplorer', - title: nls.localize({ key: 'miOpenProcessExplorerer', comment: ['&& denotes a mnemonic'] }, "Open &&Process Explorer") + title: localize({ key: 'miOpenProcessExplorerer', comment: ['&& denotes a mnemonic'] }, "Open &&Process Explorer") }, order: 2 }); @@ -195,96 +175,96 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; registry.registerConfiguration({ 'id': 'window', 'order': 8, - 'title': nls.localize('windowConfigurationTitle', "Window"), + 'title': localize('windowConfigurationTitle', "Window"), 'type': 'object', 'properties': { 'window.openWithoutArgumentsInNewWindow': { 'type': 'string', 'enum': ['on', 'off'], 'enumDescriptions': [ - nls.localize('window.openWithoutArgumentsInNewWindow.on', "Open a new empty window."), - nls.localize('window.openWithoutArgumentsInNewWindow.off', "Focus the last active running instance.") + localize('window.openWithoutArgumentsInNewWindow.on', "Open a new empty window."), + localize('window.openWithoutArgumentsInNewWindow.off', "Focus the last active running instance.") ], 'default': isMacintosh ? 'off' : 'on', 'scope': ConfigurationScope.APPLICATION, - 'markdownDescription': nls.localize('openWithoutArgumentsInNewWindow', "Controls whether a new empty window should open when starting a second instance without arguments or if the last running instance should get focus.\nNote that there can still be cases where this setting is ignored (e.g. when using the `--new-window` or `--reuse-window` command line option).") + 'markdownDescription': localize('openWithoutArgumentsInNewWindow', "Controls whether a new empty window should open when starting a second instance without arguments or if the last running instance should get focus.\nNote that there can still be cases where this setting is ignored (e.g. when using the `--new-window` or `--reuse-window` command line option).") }, 'window.restoreWindows': { 'type': 'string', 'enum': ['preserve', 'all', 'folders', 'one', 'none'], 'enumDescriptions': [ - nls.localize('window.reopenFolders.preserve', "Always reopen all windows. If a folder or workspace is opened (e.g. from the command line) it opens as a new window unless it was opened before. If files are opened they will open in one of the restored windows."), - nls.localize('window.reopenFolders.all', "Reopen all windows unless a folder, workspace or file is opened (e.g. from the command line)."), - nls.localize('window.reopenFolders.folders', "Reopen all windows that had folders or workspaces opened unless a folder, workspace or file is opened (e.g. from the command line)."), - nls.localize('window.reopenFolders.one', "Reopen the last active window unless a folder, workspace or file is opened (e.g. from the command line)."), - nls.localize('window.reopenFolders.none', "Never reopen a window. Unless a folder or workspace is opened (e.g. from the command line), an empty window will appear.") + localize('window.reopenFolders.preserve', "Always reopen all windows. If a folder or workspace is opened (e.g. from the command line) it opens as a new window unless it was opened before. If files are opened they will open in one of the restored windows."), + localize('window.reopenFolders.all', "Reopen all windows unless a folder, workspace or file is opened (e.g. from the command line)."), + localize('window.reopenFolders.folders', "Reopen all windows that had folders or workspaces opened unless a folder, workspace or file is opened (e.g. from the command line)."), + localize('window.reopenFolders.one', "Reopen the last active window unless a folder, workspace or file is opened (e.g. from the command line)."), + localize('window.reopenFolders.none', "Never reopen a window. Unless a folder or workspace is opened (e.g. from the command line), an empty window will appear.") ], 'default': 'all', 'scope': ConfigurationScope.APPLICATION, - 'description': nls.localize('restoreWindows', "Controls how windows are being reopened after starting for the first time. This setting has no effect when the application is already running.") + 'description': localize('restoreWindows', "Controls how windows are being reopened after starting for the first time. This setting has no effect when the application is already running.") }, 'window.restoreFullscreen': { 'type': 'boolean', 'default': false, 'scope': ConfigurationScope.APPLICATION, - 'description': nls.localize('restoreFullscreen', "Controls whether a window should restore to full screen mode if it was exited in full screen mode.") + 'description': localize('restoreFullscreen', "Controls whether a window should restore to full screen mode if it was exited in full screen mode.") }, 'window.zoomLevel': { 'type': 'number', 'default': 0, - 'description': nls.localize('zoomLevel', "Adjust the zoom level of the window. The original size is 0 and each increment above (e.g. 1) or below (e.g. -1) represents zooming 20% larger or smaller. You can also enter decimals to adjust the zoom level with a finer granularity."), + 'description': localize('zoomLevel', "Adjust the zoom level of the window. The original size is 0 and each increment above (e.g. 1) or below (e.g. -1) represents zooming 20% larger or smaller. You can also enter decimals to adjust the zoom level with a finer granularity."), ignoreSync: true }, 'window.newWindowDimensions': { 'type': 'string', 'enum': ['default', 'inherit', 'offset', 'maximized', 'fullscreen'], 'enumDescriptions': [ - nls.localize('window.newWindowDimensions.default', "Open new windows in the center of the screen."), - nls.localize('window.newWindowDimensions.inherit', "Open new windows with same dimension as last active one."), - nls.localize('window.newWindowDimensions.offset', "Open new windows with same dimension as last active one with an offset position."), - nls.localize('window.newWindowDimensions.maximized', "Open new windows maximized."), - nls.localize('window.newWindowDimensions.fullscreen', "Open new windows in full screen mode.") + localize('window.newWindowDimensions.default', "Open new windows in the center of the screen."), + localize('window.newWindowDimensions.inherit', "Open new windows with same dimension as last active one."), + localize('window.newWindowDimensions.offset', "Open new windows with same dimension as last active one with an offset position."), + localize('window.newWindowDimensions.maximized', "Open new windows maximized."), + localize('window.newWindowDimensions.fullscreen', "Open new windows in full screen mode.") ], 'default': 'default', 'scope': ConfigurationScope.APPLICATION, - 'description': nls.localize('newWindowDimensions', "Controls the dimensions of opening a new window when at least one window is already opened. Note that this setting does not have an impact on the first window that is opened. The first window will always restore the size and location as you left it before closing.") + 'description': localize('newWindowDimensions', "Controls the dimensions of opening a new window when at least one window is already opened. Note that this setting does not have an impact on the first window that is opened. The first window will always restore the size and location as you left it before closing.") }, 'window.closeWhenEmpty': { 'type': 'boolean', 'default': false, - 'description': nls.localize('closeWhenEmpty', "Controls whether closing the last editor should also close the window. This setting only applies for windows that do not show folders.") + 'description': localize('closeWhenEmpty', "Controls whether closing the last editor should also close the window. This setting only applies for windows that do not show folders.") }, 'window.doubleClickIconToClose': { 'type': 'boolean', 'default': false, 'scope': ConfigurationScope.APPLICATION, - 'markdownDescription': nls.localize('window.doubleClickIconToClose', "If enabled, double clicking the application icon in the title bar will close the window and the window cannot be dragged by the icon. This setting only has an effect when `#window.titleBarStyle#` is set to `custom`.") + 'markdownDescription': localize('window.doubleClickIconToClose', "If enabled, double clicking the application icon in the title bar will close the window and the window cannot be dragged by the icon. This setting only has an effect when `#window.titleBarStyle#` is set to `custom`.") }, 'window.titleBarStyle': { 'type': 'string', 'enum': ['native', 'custom'], 'default': isLinux ? 'native' : 'custom', 'scope': ConfigurationScope.APPLICATION, - 'description': nls.localize('titleBarStyle', "Adjust the appearance of the window title bar. On Linux and Windows, this setting also affects the application and context menu appearances. Changes require a full restart to apply.") + 'description': localize('titleBarStyle', "Adjust the appearance of the window title bar. On Linux and Windows, this setting also affects the application and context menu appearances. Changes require a full restart to apply.") }, 'window.dialogStyle': { 'type': 'string', 'enum': ['native', 'custom'], 'default': 'native', 'scope': ConfigurationScope.APPLICATION, - 'description': nls.localize('dialogStyle', "Adjust the appearance of dialog windows.") + 'description': localize('dialogStyle', "Adjust the appearance of dialog windows.") }, 'window.nativeTabs': { 'type': 'boolean', 'default': false, 'scope': ConfigurationScope.APPLICATION, - 'description': nls.localize('window.nativeTabs', "Enables macOS Sierra window tabs. Note that changes require a full restart to apply and that native tabs will disable a custom title bar style if configured."), + 'description': localize('window.nativeTabs', "Enables macOS Sierra window tabs. Note that changes require a full restart to apply and that native tabs will disable a custom title bar style if configured."), 'included': isMacintosh }, 'window.nativeFullScreen': { 'type': 'boolean', 'default': true, - 'description': nls.localize('window.nativeFullScreen', "Controls if native full-screen should be used on macOS. Disable this option to prevent macOS from creating a new space when going full-screen."), + 'description': localize('window.nativeFullScreen', "Controls if native full-screen should be used on macOS. Disable this option to prevent macOS from creating a new space when going full-screen."), 'scope': ConfigurationScope.APPLICATION, 'included': isMacintosh }, @@ -292,7 +272,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; 'type': 'boolean', 'default': true, 'scope': ConfigurationScope.APPLICATION, - 'description': nls.localize('window.clickThroughInactive', "If enabled, clicking on an inactive window will both activate the window and trigger the element under the mouse if it is clickable. If disabled, clicking anywhere on an inactive window will activate it only and a second click is required on the element."), + 'description': localize('window.clickThroughInactive', "If enabled, clicking on an inactive window will both activate the window and trigger the element under the mouse if it is clickable. If disabled, clicking anywhere on an inactive window will activate it only and a second click is required on the element."), 'included': isMacintosh } } @@ -302,12 +282,12 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; registry.registerConfiguration({ 'id': 'telemetry', 'order': 110, - title: nls.localize('telemetryConfigurationTitle', "Telemetry"), + title: localize('telemetryConfigurationTitle', "Telemetry"), 'type': 'object', 'properties': { 'telemetry.enableCrashReporter': { 'type': 'boolean', - 'description': nls.localize('telemetry.enableCrashReporting', "Enable crash reports to be sent to a Microsoft online service. \nThis option requires restart to take effect."), + 'description': localize('telemetry.enableCrashReporting', "Enable crash reports to be sent to a Microsoft online service. \nThis option requires restart to take effect."), 'default': true, 'tags': ['usesOnlineServices'] } @@ -319,12 +299,12 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; 'id': 'keyboard', 'order': 15, 'type': 'object', - 'title': nls.localize('keyboardConfigurationTitle', "Keyboard"), + 'title': localize('keyboardConfigurationTitle', "Keyboard"), 'properties': { 'keyboard.touchbar.enabled': { 'type': 'boolean', 'default': true, - 'description': nls.localize('touchbar.enabled', "Enables the macOS touchbar buttons on the keyboard if available."), + 'description': localize('touchbar.enabled', "Enables the macOS touchbar buttons on the keyboard if available."), 'included': isMacintosh }, 'keyboard.touchbar.ignored': { @@ -333,7 +313,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; 'type': 'string' }, 'default': [], - 'markdownDescription': nls.localize('touchbar.ignored', 'A set of identifiers for entries in the touchbar that should not show up (for example `workbench.action.navigateBack`.'), + 'markdownDescription': localize('touchbar.ignored', 'A set of identifiers for entries in the touchbar that should not show up (for example `workbench.action.navigateBack`.'), 'included': isMacintosh } } @@ -354,31 +334,31 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; properties: { locale: { type: 'string', - description: nls.localize('argv.locale', 'The display Language to use. Picking a different language requires the associated language pack to be installed.') + description: localize('argv.locale', 'The display Language to use. Picking a different language requires the associated language pack to be installed.') }, 'disable-hardware-acceleration': { type: 'boolean', - description: nls.localize('argv.disableHardwareAcceleration', 'Disables hardware acceleration. ONLY change this option if you encounter graphic issues.') + description: localize('argv.disableHardwareAcceleration', 'Disables hardware acceleration. ONLY change this option if you encounter graphic issues.') }, 'disable-color-correct-rendering': { type: 'boolean', - description: nls.localize('argv.disableColorCorrectRendering', 'Resolves issues around color profile selection. ONLY change this option if you encounter graphic issues.') + description: localize('argv.disableColorCorrectRendering', 'Resolves issues around color profile selection. ONLY change this option if you encounter graphic issues.') }, 'force-color-profile': { type: 'string', - markdownDescription: nls.localize('argv.forceColorProfile', 'Allows to override the color profile to use. If you experience colors appear badly, try to set this to `srgb` and restart.') + markdownDescription: localize('argv.forceColorProfile', 'Allows to override the color profile to use. If you experience colors appear badly, try to set this to `srgb` and restart.') }, 'enable-crash-reporter': { type: 'boolean', - markdownDescription: nls.localize('argv.enableCrashReporter', 'Allows to disable crash reporting, should restart the app if the value is changed.') + markdownDescription: localize('argv.enableCrashReporter', 'Allows to disable crash reporting, should restart the app if the value is changed.') }, 'crash-reporter-id': { type: 'string', - markdownDescription: nls.localize('argv.crashReporterId', 'Unique id used for correlating crash reports sent from this app instance.') + markdownDescription: localize('argv.crashReporterId', 'Unique id used for correlating crash reports sent from this app instance.') }, 'enable-proposed-api': { type: 'array', - description: nls.localize('argv.enebleProposedApi', "Enable proposed APIs for a list of extension ids (such as \`vscode.git\`). Proposed APIs are unstable and subject to breaking without warning at any time. This should only be set for extension development and testing purposes."), + description: localize('argv.enebleProposedApi', "Enable proposed APIs for a list of extension ids (such as \`vscode.git\`). Proposed APIs are unstable and subject to breaking without warning at any time. This should only be set for extension development and testing purposes."), items: { type: 'string' } @@ -388,7 +368,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; if (isLinux) { schema.properties!['force-renderer-accessibility'] = { type: 'boolean', - description: nls.localize('argv.force-renderer-accessibility', 'Forces the renderer to be accessible. ONLY change this if you are using a screen reader on Linux. On other platforms the renderer will automatically be accessible. This flag is automatically set if you have editor.accessibilitySupport: on.'), + description: localize('argv.force-renderer-accessibility', 'Forces the renderer to be accessible. ONLY change this if you are using a screen reader on Linux. On other platforms the renderer will automatically be accessible. This flag is automatically set if you have editor.accessibilitySupport: on.'), }; } diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts index fcbf7b0c73f..a1962759d7f 100644 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts @@ -71,10 +71,6 @@ export class SharedProcessService extends Disposable implements ISharedProcessSe registerChannel(channelName: string, channel: IServerChannel): void { this.withSharedProcessConnection.then(connection => connection.registerChannel(channelName, channel)); } - - toggleWindow(): Promise { - return this.sharedProcessManagementService.toggleWindow(); - } } registerSingleton(ISharedProcessService, SharedProcessService, true); diff --git a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts index 54a44c2fc4a..57946d6380b 100644 --- a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts @@ -151,8 +151,6 @@ export class TestSharedProcessService implements ISharedProcessService { getChannel(channelName: string): any { return undefined; } registerChannel(channelName: string, channel: any): void { } - - async toggleWindow(): Promise { } } export class TestNativeHostService implements INativeHostService { diff --git a/src/vs/workbench/workbench.desktop.main.ts b/src/vs/workbench/workbench.desktop.main.ts index bc2e2d6bfd0..dfa931ce303 100644 --- a/src/vs/workbench/workbench.desktop.main.ts +++ b/src/vs/workbench/workbench.desktop.main.ts @@ -23,13 +23,6 @@ import 'vs/workbench/workbench.sandbox.main'; //#endregion -//#region --- workbench actions - -import 'vs/workbench/electron-browser/actions/developerActions'; - -//#endregion - - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // // NOTE: Please do NOT register services here. Use `registerSingleton()` From f745a912ae14821a86407908f5c970c2b978e343 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 15:19:19 +0100 Subject: [PATCH 112/171] fixes #114420 --- test/smoke/src/areas/workbench/localization.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/test/smoke/src/areas/workbench/localization.test.ts b/test/smoke/src/areas/workbench/localization.test.ts index d0b5e698fad..1101625ba3e 100644 --- a/test/smoke/src/areas/workbench/localization.test.ts +++ b/test/smoke/src/areas/workbench/localization.test.ts @@ -28,7 +28,7 @@ export function setup() { return; } - await app.workbench.explorer.waitForOpenEditorsViewTitle(title => /geöffnete editoren/i.test(title)); + // await app.workbench.explorer.waitForOpenEditorsViewTitle(title => /geöffnete editoren/i.test(title)); await app.workbench.search.openSearchViewlet(); await app.workbench.search.waitForTitle(title => /suchen/i.test(title)); From 4974a3351125a6e47eddb6a99fc58c19c3396207 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 15:19:42 +0100 Subject: [PATCH 113/171] smoke tests are tests too --- build/azure-pipelines/darwin/product-build-darwin.yml | 2 -- 1 file changed, 2 deletions(-) diff --git a/build/azure-pipelines/darwin/product-build-darwin.yml b/build/azure-pipelines/darwin/product-build-darwin.yml index 46dd51d172b..8e61d5b5fc7 100644 --- a/build/azure-pipelines/darwin/product-build-darwin.yml +++ b/build/azure-pipelines/darwin/product-build-darwin.yml @@ -217,7 +217,6 @@ steps: APP_ROOT=$(agent.builddirectory)/VSCode-darwin-$(VSCODE_ARCH) APP_NAME="`ls $APP_ROOT | head -n 1`" yarn smoketest-no-compile --build "$APP_ROOT/$APP_NAME" - continueOnError: true timeoutInMinutes: 5 displayName: Run smoke tests (Electron) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false')) @@ -226,7 +225,6 @@ steps: set -e VSCODE_REMOTE_SERVER_PATH="$(agent.builddirectory)/vscode-reh-web-darwin" \ yarn smoketest-no-compile --web --headless - continueOnError: true timeoutInMinutes: 5 displayName: Run smoke tests (Browser) condition: and(succeeded(), eq(variables['VSCODE_ARCH'], 'x64'), eq(variables['VSCODE_STEP_ON_IT'], 'false')) From bf764f1ce6ad6679ddad87ce6debf9ca85ef3225 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Fri, 15 Jan 2021 15:45:31 +0100 Subject: [PATCH 114/171] wip: sync-extensions dev script --- build/dev/sync-extensions.js | 52 ++++++++++++++++++++++++++++++++++++ 1 file changed, 52 insertions(+) create mode 100644 build/dev/sync-extensions.js diff --git a/build/dev/sync-extensions.js b/build/dev/sync-extensions.js new file mode 100644 index 00000000000..9a626538927 --- /dev/null +++ b/build/dev/sync-extensions.js @@ -0,0 +1,52 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +const fs = require('fs').promises; +const path = require('path'); +const cp = require('child_process'); +const product = require('../../product.json'); +const root = path.resolve(path.join(__dirname, '..', '..', '..')); + +async function exists(path) { + try { + await fs.stat(path); + return true; + } catch { + return false; + } +} + +async function exec(cmd, opts = {}) { + return new Promise((c, e) => { + const child = cp.spawn(cmd, { shell: true, stdio: 'inherit', ...opts }); + child.on('close', code => code === 0 ? c() : e(`Returned ${code}`)); + }); +} + +async function cloneOrPull(ext) { + const folderName = ext.repo.replace(/.*\//, ''); + const folder = path.join(root, folderName); + + if (!await exists(folder)) { + const url = `${ext.repo}.git`; + await exec(`git clone ${url}`, { cwd: root }); + } else { + await exec(`git pull`, { cwd: folder }); + } +} + +async function main() { + for (const ext of product.builtInExtensions) { + console.log(`👉 ${ext.name}`); + await cloneOrPull(ext); + } +} + +if (require.main === module) { + main().catch(err => { + console.error(err); + process.exit(1); + }); +} From 381b99f6415128b1d721ab75926d2a347ab89fbc Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Fri, 15 Jan 2021 16:49:54 +0100 Subject: [PATCH 115/171] Also run the output based auto port forwarding (#114424) Fixes microsoft/vscode-internalbacklog#1736 --- src/vs/platform/remote/common/tunnel.ts | 10 +++++++--- .../contrib/remote/browser/remoteExplorer.ts | 19 +++++++++++++------ .../contrib/remote/browser/urlFinder.ts | 4 +++- 3 files changed, 23 insertions(+), 10 deletions(-) diff --git a/src/vs/platform/remote/common/tunnel.ts b/src/vs/platform/remote/common/tunnel.ts index f8a71a1f9be..29b9a895a46 100644 --- a/src/vs/platform/remote/common/tunnel.ts +++ b/src/vs/platform/remote/common/tunnel.ts @@ -5,7 +5,7 @@ import { Emitter, Event } from 'vs/base/common/event'; import { IDisposable } from 'vs/base/common/lifecycle'; -import { isWindows } from 'vs/base/common/platform'; +import { isWindows, OperatingSystem } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; import { ILogService } from 'vs/platform/log/common/log'; @@ -85,8 +85,12 @@ function getOtherLocalhost(host: string): string | undefined { return (host === 'localhost') ? '127.0.0.1' : ((host === '127.0.0.1') ? 'localhost' : undefined); } -export function isPortPrivileged(port: number): boolean { - return !isWindows && (port < 1024); +export function isPortPrivileged(port: number, os?: OperatingSystem): boolean { + if (os) { + return os !== OperatingSystem.Windows && (port < 1024); + } else { + return !isWindows && (port < 1024); + } } export abstract class AbstractTunnelService implements ITunnelService { diff --git a/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts b/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts index 9d3b53f3905..d009507ca72 100644 --- a/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts +++ b/src/vs/workbench/contrib/remote/browser/remoteExplorer.ts @@ -212,10 +212,12 @@ export class AutomaticPortForwarding extends Disposable implements IWorkbenchCon remoteAgentService.getEnvironment().then(environment => { if (environment?.os === OperatingSystem.Windows) { - this._register(new WindowsAutomaticPortForwarding(terminalService, notificationService, openerService, - remoteExplorerService, configurationService, debugService, tunnelService)); + this._register(new OutputAutomaticPortForwarding(terminalService, notificationService, openerService, + remoteExplorerService, configurationService, debugService, tunnelService, remoteAgentService, false)); } else if (environment?.os === OperatingSystem.Linux) { - this._register(new LinuxAutomaticPortForwarding(configurationService, remoteExplorerService, notificationService, openerService, tunnelService)); + this._register(new ProcAutomaticPortForwarding(configurationService, remoteExplorerService, notificationService, openerService, tunnelService)); + this._register(new OutputAutomaticPortForwarding(terminalService, notificationService, openerService, + remoteExplorerService, configurationService, debugService, tunnelService, remoteAgentService, true)); } }); } @@ -355,7 +357,7 @@ class OnAutoForwardedAction extends Disposable { } } -class WindowsAutomaticPortForwarding extends Disposable { +class OutputAutomaticPortForwarding extends Disposable { private portsFeatures?: IDisposable; private urlFinder?: UrlFinder; private notifier: OnAutoForwardedAction; @@ -368,7 +370,9 @@ class WindowsAutomaticPortForwarding extends Disposable { private readonly remoteExplorerService: IRemoteExplorerService, private readonly configurationService: IConfigurationService, private readonly debugService: IDebugService, - readonly tunnelService: ITunnelService + readonly tunnelService: ITunnelService, + private readonly remoteAgentService: IRemoteAgentService, + readonly privilegedOnly: boolean ) { super(); this.portsAttributes = new PortsAttributes(configurationService); @@ -408,6 +412,9 @@ class WindowsAutomaticPortForwarding extends Disposable { if (this.portsAttributes.getAttributes(localUrl.port)?.onAutoForward === OnPortForward.Ignore) { return; } + if (this.privilegedOnly && !isPortPrivileged(localUrl.port, (await this.remoteAgentService.getEnvironment())?.os)) { + return; + } const forwarded = await this.remoteExplorerService.forward(localUrl); if (forwarded) { this.notifier.doAction([forwarded]); @@ -423,7 +430,7 @@ class WindowsAutomaticPortForwarding extends Disposable { } } -class LinuxAutomaticPortForwarding extends Disposable { +class ProcAutomaticPortForwarding extends Disposable { private candidateListener: IDisposable | undefined; private autoForwarded: Set = new Set(); private notifier: OnAutoForwardedAction; diff --git a/src/vs/workbench/contrib/remote/browser/urlFinder.ts b/src/vs/workbench/contrib/remote/browser/urlFinder.ts index e9c21167a3a..cb3c96dc2f1 100644 --- a/src/vs/workbench/contrib/remote/browser/urlFinder.ts +++ b/src/vs/workbench/contrib/remote/browser/urlFinder.ts @@ -18,6 +18,7 @@ export class UrlFinder extends Disposable { * http://0.0.0.0:4000 - Elixir Phoenix */ private static readonly localUrlRegex = /\b\w{2,20}:\/\/(?:localhost|127\.0\.0\.1|0\.0\.0\.0|:\d{2,5})[\w\-\.\~:\/\?\#[\]\@!\$&\(\)\*\+\,\;\=]*/gim; + private static readonly extractPortRegex = /(localhost|127\.0\.0\.1|0\.0\.0\.0):(\d{1,5})/; /** * https://github.com/microsoft/vscode-remote-release/issues/3949 */ @@ -106,7 +107,8 @@ export class UrlFinder extends Disposable { const serverUrl = new URL(match); if (serverUrl) { // check if the port is a valid integer value - const port = parseFloat(serverUrl.port!); + const portMatch = match.match(UrlFinder.extractPortRegex); + const port = parseFloat(serverUrl.port ? serverUrl.port : (portMatch ? portMatch[2] : 'NaN')); if (!isNaN(port) && Number.isInteger(port) && port > 0 && port <= 65535) { // normalize the host name let host = serverUrl.hostname; From ff042e9fa4008d9444e3e897f813169d95581455 Mon Sep 17 00:00:00 2001 From: isidor Date: Fri, 15 Jan 2021 16:48:49 +0100 Subject: [PATCH 116/171] fixes #114203 --- src/vs/workbench/services/label/common/labelService.ts | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/src/vs/workbench/services/label/common/labelService.ts b/src/vs/workbench/services/label/common/labelService.ts index 74dc864bf51..01e8c88ebfc 100644 --- a/src/vs/workbench/services/label/common/labelService.ts +++ b/src/vs/workbench/services/label/common/labelService.ts @@ -21,6 +21,7 @@ import { match } from 'vs/base/common/glob'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; +import { hasDriveLetter } from 'vs/base/common/extpath'; const resourceLabelFormattersExtPoint = ExtensionsRegistry.registerExtensionPoint({ extensionPoint: 'resourceLabelFormatters', @@ -73,10 +74,6 @@ const resourceLabelFormattersExtPoint = ExtensionsRegistry.registerExtensionPoin const sepRegexp = /\//g; const labelMatchingRegexp = /\$\{(scheme|authority|path|(query)\.(.+?))\}/g; -function hasDriveLetter(path: string): boolean { - return !!(path && path[2] === ':'); -} - class ResourceLabelFormattersHandler implements IWorkbenchContribution { private formattersDisposables = new Map(); @@ -268,7 +265,7 @@ export class LabelService extends Disposable implements ILabelService { }); // convert \c:\something => C:\something - if (formatting.normalizeDriveLetter && hasDriveLetter(label)) { + if (formatting.normalizeDriveLetter && hasDriveLetter(label.substr(1))) { label = label.charAt(1).toUpperCase() + label.substr(2); } From 6d50c71f41c61cd2c8a4e4471bc2e8dbb86ea5b1 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Fri, 15 Jan 2021 17:32:07 +0100 Subject: [PATCH 117/171] add editor command, fyi @dbaeumer --- .../api/browser/extensionHost.contribution.ts | 1 + .../api/browser/mainThreadEditorTabs.ts | 52 +++++++++++++++++++ .../workbench/api/common/extHost.protocol.ts | 5 ++ 3 files changed, 58 insertions(+) create mode 100644 src/vs/workbench/api/browser/mainThreadEditorTabs.ts diff --git a/src/vs/workbench/api/browser/extensionHost.contribution.ts b/src/vs/workbench/api/browser/extensionHost.contribution.ts index e94dfa8a519..b0708e2d8b2 100644 --- a/src/vs/workbench/api/browser/extensionHost.contribution.ts +++ b/src/vs/workbench/api/browser/extensionHost.contribution.ts @@ -30,6 +30,7 @@ import './mainThreadDocuments'; import './mainThreadDocumentsAndEditors'; import './mainThreadEditor'; import './mainThreadEditors'; +import './mainThreadEditorTabs'; import './mainThreadErrors'; import './mainThreadExtensionService'; import './mainThreadFileSystem'; diff --git a/src/vs/workbench/api/browser/mainThreadEditorTabs.ts b/src/vs/workbench/api/browser/mainThreadEditorTabs.ts new file mode 100644 index 00000000000..962cf85f267 --- /dev/null +++ b/src/vs/workbench/api/browser/mainThreadEditorTabs.ts @@ -0,0 +1,52 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import { IDisposable } from 'vs/base/common/lifecycle'; +import { URI } from 'vs/base/common/uri'; +import { CommandsRegistry } from 'vs/platform/commands/common/commands'; +import { IExtHostContext, MainContext } from 'vs/workbench/api/common/extHost.protocol'; +import { extHostNamedCustomer } from 'vs/workbench/api/common/extHostCustomers'; +import { Verbosity } from 'vs/workbench/common/editor'; +import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; + +export interface ITabInfo { + name: string; + resource: URI; +} + +@extHostNamedCustomer(MainContext.MainThreadEditorTabs) +export class MainThreadEditorTabs { + + private readonly _registration: IDisposable; + + constructor( + _extHostContext: IExtHostContext, + @IEditorGroupsService private readonly _editorGroupsService: IEditorGroupsService, + ) { + this._registration = CommandsRegistry.registerCommand('_textEditorTabs', () => { + return this._fetchTextEditors(); + }); + } + + dispose(): void { + this._registration.dispose(); + } + + private _fetchTextEditors(): ITabInfo[] { + const result: ITabInfo[] = []; + for (const group of this._editorGroupsService.groups) { + for (const editor of group.editors) { + if (editor.isDisposed() || !editor.resource) { + continue; + } + result.push({ + name: editor.getTitle(Verbosity.SHORT) ?? '', + resource: editor.resource + }); + } + } + return result; + } +} diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 34618fde866..9ed524ac3b5 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -604,6 +604,10 @@ export interface MainThreadEditorInsetsShape extends IDisposable { $postMessage(handle: number, value: any): Promise; } +export interface MainThreadEditorTabsShape extends IDisposable { + +} + export interface ExtHostEditorInsetsShape { $onDidDispose(handle: number): void; $onDidReceiveMessage(handle: number, message: any): void; @@ -1839,6 +1843,7 @@ export const MainContext = { MainThreadDocumentContentProviders: createMainId('MainThreadDocumentContentProviders'), MainThreadTextEditors: createMainId('MainThreadTextEditors'), MainThreadEditorInsets: createMainId('MainThreadEditorInsets'), + MainThreadEditorTabs: createMainId('MainThreadEditorTabs'), MainThreadErrors: createMainId('MainThreadErrors'), MainThreadTreeViews: createMainId('MainThreadTreeViews'), MainThreadDownloadService: createMainId('MainThreadDownloadService'), From b64a4ae1aa32f0562c47a55bc473c0d240766e58 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Fri, 15 Jan 2021 17:35:25 +0100 Subject: [PATCH 118/171] Scaffold `MessageOptions.useCustom` --- src/vs/vscode.proposed.d.ts | 7 +++++++ src/vs/workbench/api/browser/mainThreadMessageService.ts | 1 + src/vs/workbench/api/common/extHost.protocol.ts | 1 + src/vs/workbench/api/common/extHostMessageService.ts | 6 ++++++ 4 files changed, 15 insertions(+) diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 59df165ca02..95f1ede0e40 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -133,6 +133,13 @@ declare module 'vscode' { //#region @alexdima - resolvers + export interface MessageOptions { + /** + * Do not render a native message box. + */ + useCustom?: boolean; + } + export interface RemoteAuthorityResolverContext { resolveAttempt: number; } diff --git a/src/vs/workbench/api/browser/mainThreadMessageService.ts b/src/vs/workbench/api/browser/mainThreadMessageService.ts index c956da47b95..134d8488dfd 100644 --- a/src/vs/workbench/api/browser/mainThreadMessageService.ts +++ b/src/vs/workbench/api/browser/mainThreadMessageService.ts @@ -33,6 +33,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise { if (options.modal) { + // TODO: Handle options.useCustom return this._showModalMessage(severity, message, commands); } else { return this._showMessage(severity, message, commands, options.extension); diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index 9ed524ac3b5..b2a4e235b00 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -420,6 +420,7 @@ export interface MainThreadLanguagesShape extends IDisposable { export interface MainThreadMessageOptions { extension?: IExtensionDescription; modal?: boolean; + useCustom?: boolean; } export interface MainThreadMessageServiceShape extends IDisposable { diff --git a/src/vs/workbench/api/common/extHostMessageService.ts b/src/vs/workbench/api/common/extHostMessageService.ts index ff75e2f3393..847a27a2b5e 100644 --- a/src/vs/workbench/api/common/extHostMessageService.ts +++ b/src/vs/workbench/api/common/extHostMessageService.ts @@ -8,6 +8,7 @@ import type * as vscode from 'vscode'; import { MainContext, MainThreadMessageServiceShape, MainThreadMessageOptions, IMainContext } from './extHost.protocol'; import { IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { ILogService } from 'vs/platform/log/common/log'; +import { checkProposedApiEnabled } from 'vs/workbench/services/extensions/common/extensions'; function isMessageItem(item: any): item is vscode.MessageItem { return item && item.title; @@ -37,9 +38,14 @@ export class ExtHostMessageService { items = [optionsOrFirstItem, ...rest]; } else { options.modal = optionsOrFirstItem && optionsOrFirstItem.modal; + options.useCustom = optionsOrFirstItem && optionsOrFirstItem.useCustom; items = rest; } + if (options.useCustom) { + checkProposedApiEnabled(extension); + } + const commands: { title: string; isCloseAffordance: boolean; handle: number; }[] = []; for (let handle = 0; handle < items.length; handle++) { From 67c988005f9108da7179b01c9976584e89537153 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Fri, 15 Jan 2021 17:43:15 +0100 Subject: [PATCH 119/171] Do not wait for the first reconnection attempt in the reconnection loop --- .../remote/common/remoteAgentConnection.ts | 16 +++++++++------- .../workbench/contrib/remote/browser/remote.ts | 2 +- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/src/vs/platform/remote/common/remoteAgentConnection.ts b/src/vs/platform/remote/common/remoteAgentConnection.ts index 20d5854b4b1..2232dddc71b 100644 --- a/src/vs/platform/remote/common/remoteAgentConnection.ts +++ b/src/vs/platform/remote/common/remoteAgentConnection.ts @@ -454,20 +454,22 @@ abstract class PersistentConnection extends Disposable { const logPrefix = commonLogPrefix(this._connectionType, this.reconnectionToken, true); this._options.logService.info(`${logPrefix} starting reconnecting loop. You can get more information with the trace log level.`); this._onDidStateChange.fire(new ConnectionLostEvent(this.protocol.getMillisSinceLastIncomingData())); - const TIMES = [5, 5, 10, 10, 10, 10, 10, 30]; + const TIMES = [0, 5, 5, 10, 10, 10, 10, 10, 30]; const disconnectStartTime = Date.now(); let attempt = -1; do { attempt++; const waitTime = (attempt < TIMES.length ? TIMES[attempt] : TIMES[TIMES.length - 1]); try { - const sleepPromise = sleep(waitTime); - this._onDidStateChange.fire(new ReconnectionWaitEvent(waitTime, this.protocol.getMillisSinceLastIncomingData(), sleepPromise)); + if (waitTime > 0) { + const sleepPromise = sleep(waitTime); + this._onDidStateChange.fire(new ReconnectionWaitEvent(waitTime, this.protocol.getMillisSinceLastIncomingData(), sleepPromise)); - this._options.logService.info(`${logPrefix} waiting for ${waitTime} seconds before reconnecting...`); - try { - await sleepPromise; - } catch { } // User canceled timer + this._options.logService.info(`${logPrefix} waiting for ${waitTime} seconds before reconnecting...`); + try { + await sleepPromise; + } catch { } // User canceled timer + } if (PersistentConnection._permanentFailure) { this._options.logService.error(`${logPrefix} permanent failure occurred while running the reconnecting loop.`); diff --git a/src/vs/workbench/contrib/remote/browser/remote.ts b/src/vs/workbench/contrib/remote/browser/remote.ts index 2b02cb6b30f..d70aae6ded3 100644 --- a/src/vs/workbench/contrib/remote/browser/remote.ts +++ b/src/vs/workbench/contrib/remote/browser/remote.ts @@ -791,7 +791,7 @@ class RemoteAgentConnectionStatusListener extends Disposable implements IWorkben // Possible state transitions: // ConnectionGain -> ConnectionLost - // ConnectionLost -> ReconnectionWait + // ConnectionLost -> ReconnectionWait, ReconnectionRunning // ReconnectionWait -> ReconnectionRunning // ReconnectionRunning -> ConnectionGain, ReconnectionPermanentFailure From 5b8f78a157084677dbbd327f6c68ece96c9da456 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Fri, 15 Jan 2021 08:56:34 -0800 Subject: [PATCH 120/171] Move sync-enabled trigger to gettingStartedService --- .../userDataSync/browser/userDataSync.ts | 8 ++------ .../common/gettingStartedService.ts | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 11 deletions(-) diff --git a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts index 03d6e9310a0..0d60cf462ef 100644 --- a/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts +++ b/src/vs/workbench/contrib/userDataSync/browser/userDataSync.ts @@ -54,7 +54,6 @@ import { UserDataSyncDataViews } from 'vs/workbench/contrib/userDataSync/browser import { IUserDataSyncWorkbenchService, getSyncAreaLabel, AccountStatus, CONTEXT_SYNC_STATE, CONTEXT_SYNC_ENABLEMENT, CONTEXT_ACCOUNT_STATE, CONFIGURE_SYNC_COMMAND_ID, SHOW_SYNC_LOG_COMMAND_ID, SYNC_VIEW_CONTAINER_ID, SYNC_TITLE, SYNC_VIEW_ICON } from 'vs/workbench/services/userDataSync/common/userDataSync'; import { Codicon } from 'vs/base/common/codicons'; import { ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer'; -import { IGettingStartedService } from 'vs/workbench/services/gettingStarted/common/gettingStartedService'; const CONTEXT_CONFLICTS_SOURCES = new RawContextKey('conflictsSources', ''); @@ -118,7 +117,6 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo @ITelemetryService private readonly telemetryService: ITelemetryService, @IProductService private readonly productService: IProductService, @IStorageService private readonly storageService: IStorageService, - @IGettingStartedService private readonly gettingStartedService: IGettingStartedService, @IOpenerService private readonly openerService: IOpenerService, @IAuthenticationService private readonly authenticationService: IAuthenticationService, @IUserDataSyncStoreManagementService private readonly userDataSyncStoreManagementService: IUserDataSyncStoreManagementService, @@ -155,10 +153,8 @@ export class UserDataSyncWorkbenchContribution extends Disposable implements IWo textModelResolverService.registerTextModelContentProvider(USER_DATA_SYNC_SCHEME, instantiationService.createInstance(UserDataRemoteContentProvider)); registerEditorContribution(AcceptChangesContribution.ID, AcceptChangesContribution); - this._register(Event.any(userDataSyncService.onDidChangeStatus, userDataAutoSyncEnablementService.onDidChangeEnablement)(() => { - if (userDataAutoSyncEnablementService.isEnabled()) { this.gettingStartedService.progressByEvent('sync-enabled'); } - this.turningOnSync = !userDataAutoSyncEnablementService.isEnabled() && userDataSyncService.status !== SyncStatus.Idle; - })); + this._register(Event.any(userDataSyncService.onDidChangeStatus, userDataAutoSyncEnablementService.onDidChangeEnablement) + (() => this.turningOnSync = !userDataAutoSyncEnablementService.isEnabled() && userDataSyncService.status !== SyncStatus.Idle)); } } diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedService.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedService.ts index 243926c63d7..b5784ee9ddb 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedService.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedService.ts @@ -12,6 +12,8 @@ import { Memento } from 'vs/workbench/common/memento'; import { Action2, registerAction2 } from 'vs/platform/actions/common/actions'; import { ICommandService } from 'vs/platform/commands/common/commands'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; +import { Disposable } from 'vs/base/common/lifecycle'; +import { IUserDataAutoSyncEnablementService } from 'vs/platform/userDataSync/common/userDataSync'; export const IGettingStartedService = createDecorator('gettingStartedService'); @@ -43,7 +45,7 @@ export interface IGettingStartedService { progressByEvent(eventName: string): void; } -export class GettingStartedService implements IGettingStartedService { +export class GettingStartedService extends Disposable implements IGettingStartedService { declare readonly _serviceBrand: undefined; private readonly _onDidAddTask = new Emitter(); @@ -65,7 +67,10 @@ export class GettingStartedService implements IGettingStartedService { @IStorageService private readonly storageService: IStorageService, @ICommandService private readonly commandService: ICommandService, @IContextKeyService private readonly contextService: IContextKeyService, + @IUserDataAutoSyncEnablementService readonly userDataAutoSyncEnablementService: IUserDataAutoSyncEnablementService, ) { + super(); + this.memento = new Memento('gettingStartedService', this.storageService); this.taskProgress = this.memento.getMemento(StorageScope.GLOBAL, StorageTarget.USER); @@ -75,13 +80,17 @@ export class GettingStartedService implements IGettingStartedService { } }); - this.registry.onDidAddCategory(category => this._onDidAddCategory.fire(this.getCategoryProgress(category))); - this.registry.onDidAddTask(task => { + this._register(this.registry.onDidAddCategory(category => this._onDidAddCategory.fire(this.getCategoryProgress(category)))); + this._register(this.registry.onDidAddTask(task => { this.registerDoneListeners(task); this._onDidAddTask.fire(this.getTaskProgress(task)); - }); + })); - this.commandService.onDidExecuteCommand(command => this.progressByCommand(command.commandId)); + this._register(this.commandService.onDidExecuteCommand(command => this.progressByCommand(command.commandId))); + + this._register(userDataAutoSyncEnablementService.onDidChangeEnablement(() => { + if (userDataAutoSyncEnablementService.isEnabled()) { this.progressByEvent('sync-enabled'); } + })); } private registerDoneListeners(task: IGettingStartedTask) { From 2137a7f8508972310f1e247a540f3198f744a80f Mon Sep 17 00:00:00 2001 From: SteVen Batten <6561887+sbatten@users.noreply.github.com> Date: Fri, 15 Jan 2021 17:00:29 +0000 Subject: [PATCH 121/171] implement useCustom in dialogService --- src/vs/platform/dialogs/common/dialogs.ts | 1 + src/vs/workbench/api/browser/mainThreadMessageService.ts | 7 +++---- .../electron-sandbox/parts/dialogs/dialog.contribution.ts | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/vs/platform/dialogs/common/dialogs.ts b/src/vs/platform/dialogs/common/dialogs.ts index 8f7bb194d2a..25e49ef1c2e 100644 --- a/src/vs/platform/dialogs/common/dialogs.ts +++ b/src/vs/platform/dialogs/common/dialogs.ts @@ -181,6 +181,7 @@ export interface IDialogOptions { cancelId?: number; detail?: string; checkbox?: ICheckbox; + useCustom?: boolean; } export interface IInput { diff --git a/src/vs/workbench/api/browser/mainThreadMessageService.ts b/src/vs/workbench/api/browser/mainThreadMessageService.ts index 134d8488dfd..b7470ac8fd0 100644 --- a/src/vs/workbench/api/browser/mainThreadMessageService.ts +++ b/src/vs/workbench/api/browser/mainThreadMessageService.ts @@ -33,8 +33,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { $showMessage(severity: Severity, message: string, options: MainThreadMessageOptions, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise { if (options.modal) { - // TODO: Handle options.useCustom - return this._showModalMessage(severity, message, commands); + return this._showModalMessage(severity, message, commands, options.useCustom); } else { return this._showMessage(severity, message, commands, options.extension); } @@ -98,7 +97,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { }); } - private async _showModalMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[]): Promise { + private async _showModalMessage(severity: Severity, message: string, commands: { title: string; isCloseAffordance: boolean; handle: number; }[], useCustom?: boolean): Promise { let cancelId: number | undefined = undefined; const buttons = commands.map((command, index) => { @@ -119,7 +118,7 @@ export class MainThreadMessageService implements MainThreadMessageServiceShape { cancelId = buttons.length - 1; } - const { choice } = await this._dialogService.show(severity, message, buttons, { cancelId }); + const { choice } = await this._dialogService.show(severity, message, buttons, { cancelId, useCustom }); return choice === commands.length ? undefined : commands[choice].handle; } } diff --git a/src/vs/workbench/electron-sandbox/parts/dialogs/dialog.contribution.ts b/src/vs/workbench/electron-sandbox/parts/dialogs/dialog.contribution.ts index 5ed67ad6906..1d117bd14f3 100644 --- a/src/vs/workbench/electron-sandbox/parts/dialogs/dialog.contribution.ts +++ b/src/vs/workbench/electron-sandbox/parts/dialogs/dialog.contribution.ts @@ -76,7 +76,7 @@ export class DialogHandlerContribution extends Disposable implements IWorkbenchC // Message else if (this.currentDialog.args.showArgs) { const args = this.currentDialog.args.showArgs; - result = this.useCustomDialog ? + result = this.useCustomDialog || args.options?.useCustom ? await this.browserImpl.show(args.severity, args.message, args.buttons, args.options) : await this.nativeImpl.show(args.severity, args.message, args.buttons, args.options); } From 7c4248780c846d030f1359a75b4af36120e6a302 Mon Sep 17 00:00:00 2001 From: SteVen Batten <6561887+sbatten@users.noreply.github.com> Date: Fri, 15 Jan 2021 17:02:32 +0000 Subject: [PATCH 122/171] adopt useCustom for permanent connection failure --- src/vs/workbench/contrib/remote/browser/remote.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/remote/browser/remote.ts b/src/vs/workbench/contrib/remote/browser/remote.ts index d70aae6ded3..bd8a7cf5ab1 100644 --- a/src/vs/workbench/contrib/remote/browser/remote.ts +++ b/src/vs/workbench/contrib/remote/browser/remote.ts @@ -843,7 +843,7 @@ class RemoteAgentConnectionStatusListener extends Disposable implements IWorkben console.log(`Error handled: Not showing a notification for the error.`); } else if (!this._reloadWindowShown) { this._reloadWindowShown = true; - dialogService.show(Severity.Error, nls.localize('reconnectionPermanentFailure', "Cannot reconnect. Please reload the window."), [nls.localize('reloadWindow', "Reload Window"), nls.localize('cancel', "Cancel")], { cancelId: 1 }).then(result => { + dialogService.show(Severity.Error, nls.localize('reconnectionPermanentFailure', "Cannot reconnect. Please reload the window."), [nls.localize('reloadWindow', "Reload Window"), nls.localize('cancel', "Cancel")], { cancelId: 1, useCustom: true }).then(result => { // Reload the window if (result.choice === 0) { commandService.executeCommand(ReloadWindowAction.ID); From 337b3e8d055bdb25cd7ba142ed14e71ef53a4bac Mon Sep 17 00:00:00 2001 From: meganrogge Date: Fri, 15 Jan 2021 09:41:13 -0800 Subject: [PATCH 123/171] turn on flow control by default --- .../workbench/contrib/terminal/common/terminalConfiguration.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index 23ad043b2b2..63dbeb77153 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -401,7 +401,7 @@ export const terminalConfiguration: IConfigurationNode = { 'terminal.integrated.flowControl': { description: localize('terminal.integrated.flowControl', "Experimental: whether to enable flow control which will slow the program on the remote side to avoid flooding remote connections with terminal output. This setting has no effect for local terminals and terminals where the output/input is controlled by an extension. Changing this will only affect new terminals."), type: 'boolean', - default: false + default: true } } }; From 3310d3ac2d42e0ab20f31fe32028df72745408c5 Mon Sep 17 00:00:00 2001 From: rebornix Date: Fri, 15 Jan 2021 08:40:14 -0800 Subject: [PATCH 124/171] sort notebook content providers in the list. --- .../notebook/browser/notebook.contribution.ts | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts index 91dace927d8..60fd454b086 100644 --- a/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts +++ b/src/vs/workbench/contrib/notebook/browser/notebook.contribution.ts @@ -237,7 +237,22 @@ export class NotebookContribution extends Disposable implements IWorkbenchContri const associatedEditors = distinct([ ...this.getUserAssociatedNotebookEditors(resource), ...this.getContributedEditors(resource) - ], editor => editor.id); + ], editor => editor.id).sort((a, b) => { + // if a content provider is exclusive, it has higher order + if (a.exclusive && b.exclusive) { + return 0; + } + + if (a.exclusive) { + return -1; + } + + if (b.exclusive) { + return 1; + } + + return 0; + }); return associatedEditors.map(info => { return { From d87041eddef956f7a18fe8fe5cdb6e9a9be110cf Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Thu, 14 Jan 2021 18:08:47 -0800 Subject: [PATCH 125/171] Downgrade simple browser to prompt instead of being the default on web We need more testing in codespaces before enabling it automatically --- extensions/simple-browser/src/extension.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/simple-browser/src/extension.ts b/extensions/simple-browser/src/extension.ts index 8079e2396eb..c268c1472ce 100644 --- a/extensions/simple-browser/src/extension.ts +++ b/extensions/simple-browser/src/extension.ts @@ -51,7 +51,7 @@ export function activate(context: vscode.ExtensionContext) { const originalUri = new URL(uri.toString()); if (enabledHosts.has(originalUri.hostname)) { return isWeb() - ? vscode.ExternalUriOpenerPriority.Preferred + ? vscode.ExternalUriOpenerPriority.Default : vscode.ExternalUriOpenerPriority.Option; } From 308a4f6a48499edc2e1e987ee4604e2d2198adcf Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 15 Jan 2021 10:35:06 -0800 Subject: [PATCH 126/171] Make sure ts extension has loaded before running on-enter tests Fixes #101922 Also adds back a test that was incorrectly removed --- .../src/test/onEnter.test.ts | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/extensions/typescript-language-features/src/test/onEnter.test.ts b/extensions/typescript-language-features/src/test/onEnter.test.ts index 72e59b4482f..5ec03f5c40a 100644 --- a/extensions/typescript-language-features/src/test/onEnter.test.ts +++ b/extensions/typescript-language-features/src/test/onEnter.test.ts @@ -28,6 +28,11 @@ const type = async (document: vscode.TextDocument, text: string): Promise { + setup(async () => { + // the tests make the assumption that language rules are registered + await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); + }); + test('should indent after if block with braces', () => { return withRandomFileEditor(`if (true) {${CURSOR}`, 'js', async (_editor, document) => { await type(document, '\nx'); @@ -51,4 +56,15 @@ suite('OnEnter', () => { `})`)); }); }); + + test('should indent after simple jsx tag with attributes', () => { + return withRandomFileEditor(`const a =
${CURSOR}`, 'jsx', async (_editor, document) => { + await type(document, '\nx'); + assert.strictEqual( + document.getText(), + joinLines( + `const a =
`, + ` x`)); + }); + }); }); From a68f1326e87501948fe3471462c9a0dc1bb36f0d Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 15 Jan 2021 10:35:24 -0800 Subject: [PATCH 127/171] Update built markdown preview code --- extensions/markdown-language-features/media/index.js | 2 +- extensions/markdown-language-features/media/pre.js | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/extensions/markdown-language-features/media/index.js b/extensions/markdown-language-features/media/index.js index 0433f33c89a..3215cd6a04e 100644 --- a/extensions/markdown-language-features/media/index.js +++ b/extensions/markdown-language-features/media/index.js @@ -1 +1 @@ -!function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let o=void 0;function i(e){const t=document.getElementById("vscode-markdown-preview-data");if(t){const n=t.getAttribute(e);if(n)return JSON.parse(n)}throw new Error(`Could not load data for ${e}`)}t.getData=i,t.getSettings=function(){if(o)return o;if(o=i("data-settings"))return o;throw new Error("Could not load settings")}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const o=n(0),i="code-line";function r(e){return t=0,n=o.getSettings().lineCount-1,i=e,Math.min(n,Math.max(t,i));var t,n,i}const c=(()=>{let e;return()=>{if(!e){e=[{element:document.body,line:0}];for(const t of document.getElementsByClassName(i)){const n=+t.getAttribute("data-line");isNaN(n)||("CODE"===t.tagName&&t.parentElement&&"PRE"===t.parentElement.tagName?e.push({element:t.parentElement,line:n}):e.push({element:t,line:n}))}}return e}})();function s(e){const t=Math.floor(e),n=c();let o=n[0]||null;for(const e of n){if(e.line===t)return{previous:e,next:void 0};if(e.line>t)return{previous:o,next:e};o=e}return{previous:o}}function a(e){const t=c(),n=e-window.scrollY;let o=-1,i=t.length-1;for(;o+1=n?i=e:o=e}const r=t[i],s=u(r);if(i>=1&&s.top>n){return{previous:t[o],next:r}}return i>1&&in?{previous:r,next:t[i+1]}:{previous:r}}function u({element:e}){const t=e.getBoundingClientRect(),n=e.querySelector(`.${i}`);if(n){const e=n.getBoundingClientRect(),o=Math.max(1,e.top-t.top);return{top:t.top,height:o}}return t}t.getElementsForSourceLine=s,t.getLineElementsAtPageOffset=a,t.scrollToRevealSourceLine=function(e){if(!o.getSettings().scrollPreviewWithEditor)return;if(e<=0)return void window.scroll(window.scrollX,0);const{previous:t,next:n}=s(e);if(!t)return;let i=0;const r=u(t),c=r.top;if(n&&n.line!==t.line){i=c+(e-t.line)/(n.line-t.line)*(n.element.getBoundingClientRect().top-c)}else{const t=e-Math.floor(e);i=c+r.height*t}window.scroll(window.scrollX,Math.max(1,window.scrollY+i))},t.getEditorLineNumberForPageOffset=function(e){const{previous:t,next:n}=a(e);if(t){const o=u(t),i=e-window.scrollY-o.top;if(n){const e=i/(u(n).top-o.top);return r(t.line+e*(n.line-t.line))}{const e=i/o.height;return r(t.line+e)}}return null},t.getLineElementForFragment=function(e){return c().find(t=>t.element.id===e)}},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const o=n(7),i=n(8),r=n(9),c=n(2),s=n(0),a=n(10);let u=!0;const l=new o.ActiveLineMarker,f=s.getSettings(),d=acquireVsCodeApi(),m=d.getState(),p={..."object"==typeof m?m:{},...s.getData("data-state")};d.setState(p);const g=r.createPosterForVsCode(d);window.cspAlerter.setPoster(g),window.styleLoadingMonitor.setPoster(g),window.onload=()=>{v()},i.onceDocumentLoaded(()=>{const t=p.scrollProgress;"number"!=typeof t||f.fragment?f.scrollPreviewWithEditor&&e(()=>{if(f.fragment){p.fragment=void 0,d.setState(p);const e=c.getLineElementForFragment(f.fragment);e&&(u=!0,c.scrollToRevealSourceLine(e.line))}else isNaN(f.line)||(u=!0,c.scrollToRevealSourceLine(f.line))}):e(()=>{u=!0,window.scrollTo(0,t*document.body.clientHeight)})});const h=(()=>{const e=a(e=>{u=!0,c.scrollToRevealSourceLine(e)},50);return t=>{isNaN(t)||(p.line=t,e(t))}})();let v=a(()=>{const e=[];let t=document.getElementsByTagName("img");if(t){let n;for(n=0;n{u=!0,w(),v()},!0),window.addEventListener("message",e=>{if(e.data.source===f.source)switch(e.data.type){case"onDidChangeTextEditorSelection":l.onDidChangeTextEditorSelection(e.data.line);break;case"updateView":h(e.data.line)}},!1),document.addEventListener("dblclick",e=>{if(!f.doubleClickToSwitchToEditor)return;for(let t=e.target;t;t=t.parentNode)if("A"===t.tagName)return;const t=e.pageY,n=c.getEditorLineNumberForPageOffset(t);"number"!=typeof n||isNaN(n)||g.postMessage("didClick",{line:Math.floor(n)})});const y=["http:","https:","mailto:","vscode:","vscode-insiders:"];function w(){p.scrollProgress=window.scrollY/document.body.clientHeight,d.setState(p)}document.addEventListener("click",e=>{if(!e)return;let t=e.target;for(;t;){if(t.tagName&&"A"===t.tagName&&t.href){if(t.getAttribute("href").startsWith("#"))return;let n=t.getAttribute("data-href");if(!n){if(y.some(e=>t.href.startsWith(e)))return;n=t.getAttribute("href")}return/^[a-z\-]+:/i.test(n)?void 0:(g.postMessage("openLink",{href:n}),e.preventDefault(),void e.stopPropagation())}t=t.parentNode}},!0),window.addEventListener("scroll",a(()=>{if(w(),u)u=!1;else{const e=c.getEditorLineNumberForPageOffset(window.scrollY);"number"!=typeof e||isNaN(e)||g.postMessage("revealLine",{line:e})}},50))}).call(this,n(4).setImmediate)},function(e,t,n){(function(e){var o=Function.prototype.apply;function i(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new i(o.call(setTimeout,window,arguments),clearTimeout)},t.setInterval=function(){return new i(o.call(setInterval,window,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},i.prototype.unref=i.prototype.ref=function(){},i.prototype.close=function(){this._clearFn.call(window,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(5),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(1))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var o,i,r,c,s,a=1,u={},l=!1,f=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?o=function(e){t.nextTick((function(){p(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((r=new MessageChannel).port1.onmessage=function(e){p(e.data)},o=function(e){r.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(i=f.documentElement,o=function(e){var t=f.createElement("script");t.onreadystatechange=function(){p(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):o=function(e){setTimeout(p,0,e)}:(c="setImmediate$"+Math.random()+"$",s=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(c)&&p(+t.data.slice(c.length))},e.addEventListener?e.addEventListener("message",s,!1):e.attachEvent("onmessage",s),o=function(t){e.postMessage(c+t,"*")}),d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n1)for(var n=1;nnew class{postMessage(t,n){e.postMessage({type:t,source:o.getSettings().source,body:n})}}},function(e,t,n){(function(t){var n="Expected a function",o=NaN,i="[object Symbol]",r=/^\s+|\s+$/g,c=/^[-+]0x[0-9a-f]+$/i,s=/^0b[01]+$/i,a=/^0o[0-7]+$/i,u=parseInt,l="object"==typeof t&&t&&t.Object===Object&&t,f="object"==typeof self&&self&&self.Object===Object&&self,d=l||f||Function("return this")(),m=Object.prototype.toString,p=Math.max,g=Math.min,h=function(){return d.Date.now()};function v(e,t,o){var i,r,c,s,a,u,l=0,f=!1,d=!1,m=!0;if("function"!=typeof e)throw new TypeError(n);function v(t){var n=i,o=r;return i=r=void 0,l=t,s=e.apply(o,n)}function b(e){var n=e-u;return void 0===u||n>=t||n<0||d&&e-l>=c}function T(){var e=h();if(b(e))return E(e);a=setTimeout(T,function(e){var n=t-(e-u);return d?g(n,c-(e-l)):n}(e))}function E(e){return a=void 0,m&&i?v(e):(i=r=void 0,s)}function _(){var e=h(),n=b(e);if(i=arguments,r=this,u=e,n){if(void 0===a)return function(e){return l=e,a=setTimeout(T,t),f?v(e):s}(u);if(d)return a=setTimeout(T,t),v(u)}return void 0===a&&(a=setTimeout(T,t)),s}return t=w(t)||0,y(o)&&(f=!!o.leading,c=(d="maxWait"in o)?p(w(o.maxWait)||0,t):c,m="trailing"in o?!!o.trailing:m),_.cancel=function(){void 0!==a&&clearTimeout(a),l=0,i=u=r=a=void 0},_.flush=function(){return void 0===a?s:E(h())},_}function y(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function w(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&m.call(e)==i}(e))return o;if(y(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=y(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(r,"");var n=s.test(e);return n||a.test(e)?u(e.slice(2),n?2:8):c.test(e)?o:+e}e.exports=function(e,t,o){var i=!0,r=!0;if("function"!=typeof e)throw new TypeError(n);return y(o)&&(i="leading"in o?!!o.leading:i,r="trailing"in o?!!o.trailing:r),v(e,t,{leading:i,maxWait:t,trailing:r})}}).call(this,n(1))}]); \ No newline at end of file +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var i=t[o]={i:o,l:!1,exports:{}};return e[o].call(i.exports,i,i.exports,n),i.l=!0,i.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(o,i,function(t){return e[t]}.bind(null,i));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=3)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSettings=t.getData=void 0;let o=void 0;function i(e){const t=document.getElementById("vscode-markdown-preview-data");if(t){const n=t.getAttribute(e);if(n)return JSON.parse(n)}throw new Error("Could not load data for "+e)}t.getData=i,t.getSettings=function(){if(o)return o;if(o=i("data-settings"),o)return o;throw new Error("Could not load settings")}},function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getLineElementForFragment=t.getEditorLineNumberForPageOffset=t.scrollToRevealSourceLine=t.getLineElementsAtPageOffset=t.getElementsForSourceLine=void 0;const o=n(0);function i(e){return t=0,n=o.getSettings().lineCount-1,i=e,Math.min(n,Math.max(t,i));var t,n,i}const r=(()=>{let e;return()=>{if(!e){e=[{element:document.body,line:0}];for(const t of document.getElementsByClassName("code-line")){const n=+t.getAttribute("data-line");isNaN(n)||("CODE"===t.tagName&&t.parentElement&&"PRE"===t.parentElement.tagName?e.push({element:t.parentElement,line:n}):e.push({element:t,line:n}))}}return e}})();function s(e){const t=Math.floor(e),n=r();let o=n[0]||null;for(const e of n){if(e.line===t)return{previous:e,next:void 0};if(e.line>t)return{previous:o,next:e};o=e}return{previous:o}}function a(e){const t=r(),n=e-window.scrollY;let o=-1,i=t.length-1;for(;o+1=n?i=e:o=e}const s=t[i],a=c(s);if(i>=1&&a.top>n){return{previous:t[o],next:s}}return i>1&&in?{previous:s,next:t[i+1]}:{previous:s}}function c({element:e}){const t=e.getBoundingClientRect(),n=e.querySelector(".code-line");if(n){const e=n.getBoundingClientRect(),o=Math.max(1,e.top-t.top);return{top:t.top,height:o}}return t}t.getElementsForSourceLine=s,t.getLineElementsAtPageOffset=a,t.scrollToRevealSourceLine=function(e){if(!o.getSettings().scrollPreviewWithEditor)return;if(e<=0)return void window.scroll(window.scrollX,0);const{previous:t,next:n}=s(e);if(!t)return;let i=0;const r=c(t),a=r.top;if(n&&n.line!==t.line){i=a+(e-t.line)/(n.line-t.line)*(n.element.getBoundingClientRect().top-a)}else{const t=e-Math.floor(e);i=a+r.height*t}i=Math.abs(i)<1?Math.sign(i):i,window.scroll(window.scrollX,Math.max(1,window.scrollY+i))},t.getEditorLineNumberForPageOffset=function(e){const{previous:t,next:n}=a(e);if(t){const o=c(t),r=e-window.scrollY-o.top;if(n){const e=r/(c(n).top-o.top);return i(t.line+e*(n.line-t.line))}{const e=r/o.height;return i(t.line+e)}}return null},t.getLineElementForFragment=function(e){return r().find(t=>t.element.id===e)}},function(e,t,n){"use strict";(function(e){Object.defineProperty(t,"__esModule",{value:!0});const o=n(7),i=n(8),r=n(9),s=n(2),a=n(0),c=n(10);let u=0;const l=new o.ActiveLineMarker,f=a.getSettings(),d=acquireVsCodeApi(),m=d.getState(),g={..."object"==typeof m?m:{},...a.getData("data-state")};d.setState(g);const p=r.createPosterForVsCode(d);function h(t){const n=document.getElementsByTagName("img");if(n.length>0){const o=Array.from(n).map(e=>e.complete?Promise.resolve():new Promise(t=>{e.addEventListener("load",()=>t()),e.addEventListener("error",()=>t())}));Promise.all(o).then(()=>e(t))}else e(t)}window.cspAlerter.setPoster(p),window.styleLoadingMonitor.setPoster(p),window.onload=()=>{y()},i.onceDocumentLoaded(()=>{const e=g.scrollProgress;"number"!=typeof e||f.fragment?f.scrollPreviewWithEditor&&h(()=>{if(f.fragment){g.fragment=void 0,d.setState(g);const e=s.getLineElementForFragment(f.fragment);e&&(u+=1,s.scrollToRevealSourceLine(e.line))}else isNaN(f.line)||(u+=1,s.scrollToRevealSourceLine(f.line))}):h(()=>{u+=1,window.scrollTo(0,e*document.body.clientHeight)})});const v=(()=>{const e=c(e=>{u+=1,h(()=>s.scrollToRevealSourceLine(e))},50);return t=>{isNaN(t)||(g.line=t,e(t))}})();let y=c(()=>{const e=[];let t=document.getElementsByTagName("img");if(t){let n;for(n=0;n{u+=1,b(),y()},!0),window.addEventListener("message",e=>{if(e.data.source===f.source)switch(e.data.type){case"onDidChangeTextEditorSelection":l.onDidChangeTextEditorSelection(e.data.line);break;case"updateView":v(e.data.line)}},!1),document.addEventListener("dblclick",e=>{if(!f.doubleClickToSwitchToEditor)return;for(let t=e.target;t;t=t.parentNode)if("A"===t.tagName)return;const t=e.pageY,n=s.getEditorLineNumberForPageOffset(t);"number"!=typeof n||isNaN(n)||p.postMessage("didClick",{line:Math.floor(n)})});const w=["http:","https:","mailto:","vscode:","vscode-insiders:"];function b(){g.scrollProgress=window.scrollY/document.body.clientHeight,d.setState(g)}document.addEventListener("click",e=>{if(!e)return;let t=e.target;for(;t;){if(t.tagName&&"A"===t.tagName&&t.href){if(t.getAttribute("href").startsWith("#"))return;let n=t.getAttribute("data-href");if(!n){if(w.some(e=>t.href.startsWith(e)))return;n=t.getAttribute("href")}return/^[a-z\-]+:/i.test(n)?void 0:(p.postMessage("openLink",{href:n}),e.preventDefault(),void e.stopPropagation())}t=t.parentNode}},!0),window.addEventListener("scroll",c(()=>{if(b(),u>0)u-=1;else{const e=s.getEditorLineNumberForPageOffset(window.scrollY);"number"!=typeof e||isNaN(e)||p.postMessage("revealLine",{line:e})}},50))}).call(this,n(4).setImmediate)},function(e,t,n){(function(e){var o=void 0!==e&&e||"undefined"!=typeof self&&self||window,i=Function.prototype.apply;function r(e,t){this._id=e,this._clearFn=t}t.setTimeout=function(){return new r(i.call(setTimeout,o,arguments),clearTimeout)},t.setInterval=function(){return new r(i.call(setInterval,o,arguments),clearInterval)},t.clearTimeout=t.clearInterval=function(e){e&&e.close()},r.prototype.unref=r.prototype.ref=function(){},r.prototype.close=function(){this._clearFn.call(o,this._id)},t.enroll=function(e,t){clearTimeout(e._idleTimeoutId),e._idleTimeout=t},t.unenroll=function(e){clearTimeout(e._idleTimeoutId),e._idleTimeout=-1},t._unrefActive=t.active=function(e){clearTimeout(e._idleTimeoutId);var t=e._idleTimeout;t>=0&&(e._idleTimeoutId=setTimeout((function(){e._onTimeout&&e._onTimeout()}),t))},n(5),t.setImmediate="undefined"!=typeof self&&self.setImmediate||void 0!==e&&e.setImmediate||this&&this.setImmediate,t.clearImmediate="undefined"!=typeof self&&self.clearImmediate||void 0!==e&&e.clearImmediate||this&&this.clearImmediate}).call(this,n(1))},function(e,t,n){(function(e,t){!function(e,n){"use strict";if(!e.setImmediate){var o,i,r,s,a,c=1,u={},l=!1,f=e.document,d=Object.getPrototypeOf&&Object.getPrototypeOf(e);d=d&&d.setTimeout?d:e,"[object process]"==={}.toString.call(e.process)?o=function(e){t.nextTick((function(){g(e)}))}:!function(){if(e.postMessage&&!e.importScripts){var t=!0,n=e.onmessage;return e.onmessage=function(){t=!1},e.postMessage("","*"),e.onmessage=n,t}}()?e.MessageChannel?((r=new MessageChannel).port1.onmessage=function(e){g(e.data)},o=function(e){r.port2.postMessage(e)}):f&&"onreadystatechange"in f.createElement("script")?(i=f.documentElement,o=function(e){var t=f.createElement("script");t.onreadystatechange=function(){g(e),t.onreadystatechange=null,i.removeChild(t),t=null},i.appendChild(t)}):o=function(e){setTimeout(g,0,e)}:(s="setImmediate$"+Math.random()+"$",a=function(t){t.source===e&&"string"==typeof t.data&&0===t.data.indexOf(s)&&g(+t.data.slice(s.length))},e.addEventListener?e.addEventListener("message",a,!1):e.attachEvent("onmessage",a),o=function(t){e.postMessage(s+t,"*")}),d.setImmediate=function(e){"function"!=typeof e&&(e=new Function(""+e));for(var t=new Array(arguments.length-1),n=0;n1)for(var n=1;nnew class{postMessage(t,n){e.postMessage({type:t,source:o.getSettings().source,body:n})}}},function(e,t,n){(function(t){var n=/^\s+|\s+$/g,o=/^[-+]0x[0-9a-f]+$/i,i=/^0b[01]+$/i,r=/^0o[0-7]+$/i,s=parseInt,a="object"==typeof t&&t&&t.Object===Object&&t,c="object"==typeof self&&self&&self.Object===Object&&self,u=a||c||Function("return this")(),l=Object.prototype.toString,f=Math.max,d=Math.min,m=function(){return u.Date.now()};function g(e,t,n){var o,i,r,s,a,c,u=0,l=!1,g=!1,v=!0;if("function"!=typeof e)throw new TypeError("Expected a function");function y(t){var n=o,r=i;return o=i=void 0,u=t,s=e.apply(r,n)}function w(e){return u=e,a=setTimeout(T,t),l?y(e):s}function b(e){var n=e-c;return void 0===c||n>=t||n<0||g&&e-u>=r}function T(){var e=m();if(b(e))return E(e);a=setTimeout(T,function(e){var n=t-(e-c);return g?d(n,r-(e-u)):n}(e))}function E(e){return a=void 0,v&&o?y(e):(o=i=void 0,s)}function L(){var e=m(),n=b(e);if(o=arguments,i=this,c=e,n){if(void 0===a)return w(c);if(g)return a=setTimeout(T,t),y(c)}return void 0===a&&(a=setTimeout(T,t)),s}return t=h(t)||0,p(n)&&(l=!!n.leading,r=(g="maxWait"in n)?f(h(n.maxWait)||0,t):r,v="trailing"in n?!!n.trailing:v),L.cancel=function(){void 0!==a&&clearTimeout(a),u=0,o=c=i=a=void 0},L.flush=function(){return void 0===a?s:E(m())},L}function p(e){var t=typeof e;return!!e&&("object"==t||"function"==t)}function h(e){if("number"==typeof e)return e;if(function(e){return"symbol"==typeof e||function(e){return!!e&&"object"==typeof e}(e)&&"[object Symbol]"==l.call(e)}(e))return NaN;if(p(e)){var t="function"==typeof e.valueOf?e.valueOf():e;e=p(t)?t+"":t}if("string"!=typeof e)return 0===e?e:+e;e=e.replace(n,"");var a=i.test(e);return a||r.test(e)?s(e.slice(2),a?2:8):o.test(e)?NaN:+e}e.exports=function(e,t,n){var o=!0,i=!0;if("function"!=typeof e)throw new TypeError("Expected a function");return p(n)&&(o="leading"in n?!!n.leading:o,i="trailing"in n?!!n.trailing:i),g(e,t,{leading:o,maxWait:t,trailing:i})}}).call(this,n(1))}]); \ No newline at end of file diff --git a/extensions/markdown-language-features/media/pre.js b/extensions/markdown-language-features/media/pre.js index 8268f1e2d5b..5a2fa42624c 100644 --- a/extensions/markdown-language-features/media/pre.js +++ b/extensions/markdown-language-features/media/pre.js @@ -1 +1 @@ -!function(e){var t={};function n(s){if(t[s])return t[s].exports;var o=t[s]={i:s,l:!1,exports:{}};return e[s].call(o.exports,o,o.exports,n),o.l=!0,o.exports}n.m=e,n.c=t,n.d=function(e,t,s){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:s})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var s=Object.create(null);if(n.r(s),Object.defineProperty(s,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)n.d(s,o,function(t){return e[t]}.bind(null,o));return s},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=11)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});let s=void 0;function o(e){const t=document.getElementById("vscode-markdown-preview-data");if(t){const n=t.getAttribute(e);if(n)return JSON.parse(n)}throw new Error(`Could not load data for ${e}`)}t.getData=o,t.getSettings=function(){if(s)return s;if(s=o("data-settings"))return s;throw new Error("Could not load settings")}},,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=n(12),o=n(14);window.cspAlerter=new s.CspAlerter,window.styleLoadingMonitor=new o.StyleLoadingMonitor},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const s=n(0),o=n(13);t.CspAlerter=class{constructor(){this.didShow=!1,this.didHaveCspWarning=!1,document.addEventListener("securitypolicyviolation",()=>{this.onCspWarning()}),window.addEventListener("message",e=>{e&&e.data&&"vscode-did-block-svg"===e.data.name&&this.onCspWarning()})}setPoster(e){this.messaging=e,this.didHaveCspWarning&&this.showCspWarning()}onCspWarning(){this.didHaveCspWarning=!0,this.showCspWarning()}showCspWarning(){const e=o.getStrings(),t=s.getSettings();if(this.didShow||t.disableSecurityWarnings||!this.messaging)return;this.didShow=!0;const n=document.createElement("a");n.innerText=e.cspAlertMessageText,n.setAttribute("id","code-csp-warning"),n.setAttribute("title",e.cspAlertMessageTitle),n.setAttribute("role","button"),n.setAttribute("aria-label",e.cspAlertMessageLabel),n.onclick=()=>{this.messaging.postMessage("showPreviewSecuritySelector",{source:t.source})},document.body.appendChild(n)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getStrings=function(){const e=document.getElementById("vscode-markdown-preview-data");if(e){const t=e.getAttribute("data-strings");if(t)return JSON.parse(t)}throw new Error("Could not load strings")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});t.StyleLoadingMonitor=class{constructor(){this.unloadedStyles=[],this.finishedLoading=!1;const e=e=>{const t=e.target.dataset.source;this.unloadedStyles.push(t)};window.addEventListener("DOMContentLoaded",()=>{for(const t of document.getElementsByClassName("code-user-style"))t.dataset.source&&(t.onerror=e)}),window.addEventListener("load",()=>{this.unloadedStyles.length&&(this.finishedLoading=!0,this.poster&&this.poster.postMessage("previewStyleLoadError",{unloadedStyles:this.unloadedStyles}))})}setPoster(e){this.poster=e,this.finishedLoading&&e.postMessage("previewStyleLoadError",{unloadedStyles:this.unloadedStyles})}}}]); \ No newline at end of file +!function(e){var t={};function n(o){if(t[o])return t[o].exports;var s=t[o]={i:o,l:!1,exports:{}};return e[o].call(s.exports,s,s.exports,n),s.l=!0,s.exports}n.m=e,n.c=t,n.d=function(e,t,o){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:o})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var o=Object.create(null);if(n.r(o),Object.defineProperty(o,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var s in e)n.d(o,s,function(t){return e[t]}.bind(null,s));return o},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=11)}([function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getSettings=t.getData=void 0;let o=void 0;function s(e){const t=document.getElementById("vscode-markdown-preview-data");if(t){const n=t.getAttribute(e);if(n)return JSON.parse(n)}throw new Error("Could not load data for "+e)}t.getData=s,t.getSettings=function(){if(o)return o;if(o=s("data-settings"),o)return o;throw new Error("Could not load settings")}},,,,,,,,,,,function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0});const o=n(12),s=n(14);window.cspAlerter=new o.CspAlerter,window.styleLoadingMonitor=new s.StyleLoadingMonitor},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.CspAlerter=void 0;const o=n(0),s=n(13);t.CspAlerter=class{constructor(){this.didShow=!1,this.didHaveCspWarning=!1,document.addEventListener("securitypolicyviolation",()=>{this.onCspWarning()}),window.addEventListener("message",e=>{e&&e.data&&"vscode-did-block-svg"===e.data.name&&this.onCspWarning()})}setPoster(e){this.messaging=e,this.didHaveCspWarning&&this.showCspWarning()}onCspWarning(){this.didHaveCspWarning=!0,this.showCspWarning()}showCspWarning(){const e=s.getStrings(),t=o.getSettings();if(this.didShow||t.disableSecurityWarnings||!this.messaging)return;this.didShow=!0;const n=document.createElement("a");n.innerText=e.cspAlertMessageText,n.setAttribute("id","code-csp-warning"),n.setAttribute("title",e.cspAlertMessageTitle),n.setAttribute("role","button"),n.setAttribute("aria-label",e.cspAlertMessageLabel),n.onclick=()=>{this.messaging.postMessage("showPreviewSecuritySelector",{source:t.source})},document.body.appendChild(n)}}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.getStrings=void 0,t.getStrings=function(){const e=document.getElementById("vscode-markdown-preview-data");if(e){const t=e.getAttribute("data-strings");if(t)return JSON.parse(t)}throw new Error("Could not load strings")}},function(e,t,n){"use strict";Object.defineProperty(t,"__esModule",{value:!0}),t.StyleLoadingMonitor=void 0;t.StyleLoadingMonitor=class{constructor(){this.unloadedStyles=[],this.finishedLoading=!1;const e=e=>{const t=e.target.dataset.source;this.unloadedStyles.push(t)};window.addEventListener("DOMContentLoaded",()=>{for(const t of document.getElementsByClassName("code-user-style"))t.dataset.source&&(t.onerror=e)}),window.addEventListener("load",()=>{this.unloadedStyles.length&&(this.finishedLoading=!0,this.poster&&this.poster.postMessage("previewStyleLoadError",{unloadedStyles:this.unloadedStyles}))})}setPoster(e){this.poster=e,this.finishedLoading&&e.postMessage("previewStyleLoadError",{unloadedStyles:this.unloadedStyles})}}}]); \ No newline at end of file From 663532c31739dc4d4ca7c3ce8c9aa94b864a7950 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 15 Jan 2021 10:37:58 -0800 Subject: [PATCH 128/171] Skipping unreliable test Also makes sure the TS extension is activated for each of them --- .../src/test/completions.test.ts | 7 ++++--- .../src/test/fixAll.test.ts | 7 ++++++- .../src/test/jsDocCompletions.test.ts | 5 +++-- .../src/test/jsdocSnippet.test.ts | 10 ++++++++-- .../src/test/quickFix.test.ts | 7 ++++++- .../src/test/referencesCodeLens.test.ts | 3 ++- .../src/test/server.test.ts | 2 +- 7 files changed, 30 insertions(+), 11 deletions(-) diff --git a/extensions/typescript-language-features/src/test/completions.test.ts b/extensions/typescript-language-features/src/test/completions.test.ts index 92a7da63f92..1e651274541 100644 --- a/extensions/typescript-language-features/src/test/completions.test.ts +++ b/extensions/typescript-language-features/src/test/completions.test.ts @@ -7,13 +7,13 @@ import 'mocha'; import * as vscode from 'vscode'; import { disposeAll } from '../utils/dispose'; import { acceptFirstSuggestion, typeCommitCharacter } from './suggestTestHelpers'; -import { assertEditorContents, Config, createTestEditor, joinLines, updateConfig, VsCodeConfiguration, wait, enumerateConfig } from './testUtils'; +import { assertEditorContents, Config, createTestEditor, enumerateConfig, joinLines, updateConfig, VsCodeConfiguration } from './testUtils'; const testDocumentUri = vscode.Uri.parse('untitled:test.ts'); const insertModes = Object.freeze(['insert', 'replace']); -suite('TypeScript Completions', () => { +suite.skip('TypeScript Completions', () => { const configDefaults: VsCodeConfiguration = Object.freeze({ [Config.autoClosingBrackets]: 'always', [Config.typescriptCompleteFunctionCalls]: false, @@ -28,7 +28,8 @@ suite('TypeScript Completions', () => { let oldConfig: { [key: string]: any } = {}; setup(async () => { - await wait(500); + // the tests assume that typescript features are registered + await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); // Save off config and apply defaults oldConfig = await updateConfig(testDocumentUri, configDefaults); diff --git a/extensions/typescript-language-features/src/test/fixAll.test.ts b/extensions/typescript-language-features/src/test/fixAll.test.ts index 37fae0bcfc8..97ec0679e47 100644 --- a/extensions/typescript-language-features/src/test/fixAll.test.ts +++ b/extensions/typescript-language-features/src/test/fixAll.test.ts @@ -13,10 +13,15 @@ const testDocumentUri = vscode.Uri.parse('untitled:test.ts'); const emptyRange = new vscode.Range(new vscode.Position(0, 0), new vscode.Position(0, 0)); -suite('TypeScript Fix All', () => { +suite.skip('TypeScript Fix All', () => { const _disposables: vscode.Disposable[] = []; + setup(async () => { + // the tests assume that typescript features are registered + await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); + }); + teardown(async () => { disposeAll(_disposables); diff --git a/extensions/typescript-language-features/src/test/jsDocCompletions.test.ts b/extensions/typescript-language-features/src/test/jsDocCompletions.test.ts index 63d3f144f9a..d824fbb4f5d 100644 --- a/extensions/typescript-language-features/src/test/jsDocCompletions.test.ts +++ b/extensions/typescript-language-features/src/test/jsDocCompletions.test.ts @@ -7,7 +7,7 @@ import 'mocha'; import * as vscode from 'vscode'; import { disposeAll } from '../utils/dispose'; import { acceptFirstSuggestion } from './suggestTestHelpers'; -import { assertEditorContents, Config, createTestEditor, CURSOR, enumerateConfig, insertModesValues, joinLines, updateConfig, VsCodeConfiguration, wait } from './testUtils'; +import { assertEditorContents, Config, createTestEditor, CURSOR, enumerateConfig, insertModesValues, joinLines, updateConfig, VsCodeConfiguration } from './testUtils'; const testDocumentUri = vscode.Uri.parse('untitled:test.ts'); @@ -21,7 +21,8 @@ suite('JSDoc Completions', () => { let oldConfig: { [key: string]: any } = {}; setup(async () => { - await wait(100); + // the tests assume that typescript features are registered + await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); // Save off config and apply defaults oldConfig = await updateConfig(testDocumentUri, configDefaults); diff --git a/extensions/typescript-language-features/src/test/jsdocSnippet.test.ts b/extensions/typescript-language-features/src/test/jsdocSnippet.test.ts index d9e17a75644..89464a2dd44 100644 --- a/extensions/typescript-language-features/src/test/jsdocSnippet.test.ts +++ b/extensions/typescript-language-features/src/test/jsdocSnippet.test.ts @@ -5,11 +5,17 @@ import * as assert from 'assert'; import 'mocha'; +import * as vscode from 'vscode'; import { templateToSnippet } from '../languageFeatures/jsDocCompletions'; - -const joinLines = (...args: string[]) => args.join('\n'); +import { joinLines } from './testUtils'; suite('typescript.jsDocSnippet', () => { + + setup(async () => { + // the tests assume that typescript features are registered + await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); + }); + test('Should do nothing for single line input', async () => { const input = `/** */`; assert.strictEqual(templateToSnippet(input).value, input); diff --git a/extensions/typescript-language-features/src/test/quickFix.test.ts b/extensions/typescript-language-features/src/test/quickFix.test.ts index 13200dbcf50..169cc91dee3 100644 --- a/extensions/typescript-language-features/src/test/quickFix.test.ts +++ b/extensions/typescript-language-features/src/test/quickFix.test.ts @@ -9,10 +9,15 @@ import * as vscode from 'vscode'; import { disposeAll } from '../utils/dispose'; import { createTestEditor, joinLines, retryUntilDocumentChanges, wait } from './testUtils'; -suite('TypeScript Quick Fix', () => { +suite.skip('TypeScript Quick Fix', () => { const _disposables: vscode.Disposable[] = []; + setup(async () => { + // the tests assume that typescript features are registered + await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); + }); + teardown(async () => { disposeAll(_disposables); diff --git a/extensions/typescript-language-features/src/test/referencesCodeLens.test.ts b/extensions/typescript-language-features/src/test/referencesCodeLens.test.ts index f848d0f4d03..80ecd3a5499 100644 --- a/extensions/typescript-language-features/src/test/referencesCodeLens.test.ts +++ b/extensions/typescript-language-features/src/test/referencesCodeLens.test.ts @@ -37,7 +37,8 @@ suite('TypeScript References', () => { let oldConfig: { [key: string]: any } = {}; setup(async () => { - await wait(100); + // the tests assume that typescript features are registered + await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); // Save off config and apply defaults oldConfig = await updateConfig(configDefaults); diff --git a/extensions/typescript-language-features/src/test/server.test.ts b/extensions/typescript-language-features/src/test/server.test.ts index 5caad737a48..d95b16e06ba 100644 --- a/extensions/typescript-language-features/src/test/server.test.ts +++ b/extensions/typescript-language-features/src/test/server.test.ts @@ -60,7 +60,7 @@ class FakeServerProcess implements TsServerProcess { } } -suite('Server', () => { +suite.skip('Server', () => { const tracer = new Tracer(new Logger()); test('should send requests with increasing sequence numbers', async () => { From a3febc561438f2cc2bcf38f9c2a0870c995261a2 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Fri, 15 Jan 2021 10:44:34 -0800 Subject: [PATCH 129/171] Potential new formatter for userdata in serverless. (#114296) * Potential new formatter for userdata in serverless. Fixes #114234. * Move userData formatter to userDataInit Allow `priority` for fomratters without authorities * Move formatting to web.main.ts * Remove priority --- src/vs/workbench/browser/web.main.ts | 19 ++++++++++++++++++- .../services/label/common/labelService.ts | 2 +- 2 files changed, 19 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/browser/web.main.ts b/src/vs/workbench/browser/web.main.ts index 06bde141e0c..6bc4f1df5e6 100644 --- a/src/vs/workbench/browser/web.main.ts +++ b/src/vs/workbench/browser/web.main.ts @@ -54,7 +54,7 @@ import { UserDataSyncStoreManagementService } from 'vs/platform/userDataSync/com import { IUserDataSyncStoreManagementService } from 'vs/platform/userDataSync/common/userDataSync'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { Action2, MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; -import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; +import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { localize } from 'vs/nls'; import { CATEGORIES } from 'vs/workbench/common/actions'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; @@ -63,6 +63,7 @@ import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/ur import { UriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentityService'; import { BrowserWindow } from 'vs/workbench/browser/window'; import { ITimerService } from 'vs/workbench/services/timer/browser/timerService'; +import { ILabelService } from 'vs/platform/label/common/label'; class BrowserMain extends Disposable { @@ -111,6 +112,9 @@ class BrowserMain extends Disposable { // Logging services.logService.trace('workbench configuration', JSON.stringify(this.configuration)); + // Label formatting + this.registerLabelFormatters(instantiationService); + // Return API Facade return instantiationService.invokeFunction(accessor => { const commandService = accessor.get(ICommandService); @@ -339,6 +343,19 @@ class BrowserMain extends Disposable { } } + private registerLabelFormatters(instantiationService: IInstantiationService) { + instantiationService.invokeFunction((accessor) => { + accessor.get(ILabelService).registerFormatter({ + scheme: Schemas.userData, + priority: true, + formatting: { + label: '${scheme}:${path}', + separator: '/', + } + }); + }); + } + private async createStorageService(payload: IWorkspaceInitializationPayload, environmentService: IWorkbenchEnvironmentService, fileService: IFileService, logService: ILogService): Promise { const storageService = new BrowserStorageService(environmentService, fileService); diff --git a/src/vs/workbench/services/label/common/labelService.ts b/src/vs/workbench/services/label/common/labelService.ts index 01e8c88ebfc..75c13506c35 100644 --- a/src/vs/workbench/services/label/common/labelService.ts +++ b/src/vs/workbench/services/label/common/labelService.ts @@ -112,7 +112,7 @@ export class LabelService extends Disposable implements ILabelService { this.formatters.forEach(formatter => { if (formatter.scheme === resource.scheme) { - if (!bestResult && !formatter.authority) { + if (!formatter.authority && (!bestResult || formatter.priority)) { bestResult = formatter; return; } From 5a25a5669595a97d96b912de25a7a3e21683922f Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Fri, 15 Jan 2021 09:56:08 -0800 Subject: [PATCH 130/171] workbench.action.debug.start => workbench.action.debug.selectandstart --- .../services/gettingStarted/common/gettingStartedContent.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts index ba47e0531da..d70a5af9307 100644 --- a/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts +++ b/src/vs/workbench/services/gettingStarted/common/gettingStartedContent.ts @@ -53,9 +53,9 @@ export const content: GettingStartedContent = [ description: localize('gettingStarted.runProject.description', "Build, run & debug your application in your codespace instead of locally."), button: { title: localize('gettingStarted.runProject.button', "Run Project"), - command: 'workbench.action.debug.start' + command: 'workbench.action.debug.selectandstart' }, - doneOn: { commandExecuted: 'workbench.action.debug.start' }, + doneOn: { commandExecuted: 'workbench.action.debug.selectandstart' }, media: { type: 'image', altText: 'Node.js project running debug mode and paused.', path: 'runProject.jpg' }, }, { From 79cfca5aa294343288a23e6e57e38224fe76f7dc Mon Sep 17 00:00:00 2001 From: John Murray Date: Fri, 15 Jan 2021 18:59:21 +0000 Subject: [PATCH 131/171] fix #114416 LabelService.getUriLabel bad relative path if in root workspace (#114419) * fix #114416 LabelService.getUriLabel bad relative path if in root workspace First commit is just a new test to show the problem. Second commit will be the fix. * Push the fix for #114416 --- .../services/label/common/labelService.ts | 2 + .../services/label/test/browser/label.test.ts | 60 ++++++++++++++++++- 2 files changed, 59 insertions(+), 3 deletions(-) diff --git a/src/vs/workbench/services/label/common/labelService.ts b/src/vs/workbench/services/label/common/labelService.ts index 75c13506c35..9137da77e95 100644 --- a/src/vs/workbench/services/label/common/labelService.ts +++ b/src/vs/workbench/services/label/common/labelService.ts @@ -149,6 +149,8 @@ export class LabelService extends Disposable implements ILabelService { while (relativeLabel[overlap] && relativeLabel[overlap] === baseResourceLabel[overlap]) { overlap++; } if (!relativeLabel[overlap] || relativeLabel[overlap] === formatting.separator) { relativeLabel = relativeLabel.substring(1 + overlap); + } else if (overlap === baseResourceLabel.length && baseResource.uri.path === '/') { + relativeLabel = relativeLabel.substring(overlap); } const hasMultipleRoots = this.contextService.getWorkspace().folders.length > 1; diff --git a/src/vs/workbench/services/label/test/browser/label.test.ts b/src/vs/workbench/services/label/test/browser/label.test.ts index 7f25ff89245..7a032c47729 100644 --- a/src/vs/workbench/services/label/test/browser/label.test.ts +++ b/src/vs/workbench/services/label/test/browser/label.test.ts @@ -160,7 +160,7 @@ suite('URI Label', () => { }); -suite('multi-root worksapce', () => { +suite('multi-root workspace', () => { let labelService: LabelService; setup(() => { @@ -171,7 +171,7 @@ suite('multi-root worksapce', () => { labelService = new LabelService( TestEnvironmentService, new TestContextService( - new Workspace('test-workspaace', [ + new Workspace('test-workspace', [ new WorkspaceFolder({ uri: sources, index: 0, name: 'Sources' }, { uri: sources.toString() }), new WorkspaceFolder({ uri: tests, index: 1, name: 'Tests' }, { uri: tests.toString() }), new WorkspaceFolder({ uri: other, index: 2, name: resources.basename(other) }, { uri: other.toString() }), @@ -179,7 +179,7 @@ suite('multi-root worksapce', () => { new TestPathService()); }); - test('labels of files in multiroot workspaces are the foldername folloed by offset from the folder', () => { + test('labels of files in multiroot workspaces are the foldername followed by offset from the folder', () => { labelService.registerFormatter({ scheme: 'file', formatting: { @@ -250,3 +250,57 @@ suite('multi-root worksapce', () => { }); }); }); + +suite('workspace at FSP root', () => { + let labelService: LabelService; + + setup(() => { + const rootFolder = URI.parse('myscheme://myauthority/'); + + labelService = new LabelService( + TestEnvironmentService, + new TestContextService( + new Workspace('test-workspace', [ + new WorkspaceFolder({ uri: rootFolder, index: 0, name: 'FSProotFolder' }, { uri: rootFolder.toString() }), + ])), + new TestPathService()); + labelService.registerFormatter({ + scheme: 'myscheme', + formatting: { + label: '${scheme}://${authority}${path}', + separator: '/', + tildify: false, + normalizeDriveLetter: false, + workspaceSuffix: '', + authorityPrefix: '', + stripPathStartingSeparator: false + } + }); + }); + + test('non-relative label', () => { + + const tests = { + 'myscheme://myauthority/myFile1.txt': 'myscheme://myauthority/myFile1.txt', + 'myscheme://myauthority/folder/myFile2.txt': 'myscheme://myauthority/folder/myFile2.txt', + }; + + Object.entries(tests).forEach(([uriString, label]) => { + const generated = labelService.getUriLabel(URI.parse(uriString), { relative: false }); + assert.equal(generated, label); + }); + }); + + test('relative label', () => { + + const tests = { + 'myscheme://myauthority/myFile1.txt': 'myFile1.txt', + 'myscheme://myauthority/folder/myFile2.txt': 'folder/myFile2.txt', + }; + + Object.entries(tests).forEach(([uriString, label]) => { + const generated = labelService.getUriLabel(URI.parse(uriString), { relative: true }); + assert.equal(generated, label); + }); + }); +}); From 21c11ba864c12502be67877209d3f8a9802b3477 Mon Sep 17 00:00:00 2001 From: Eric Amodio Date: Fri, 15 Jan 2021 14:05:35 -0500 Subject: [PATCH 132/171] Fixes #114433 - adds setting to avoid git config --- extensions/git/package.json | 5 +++++ extensions/git/package.nls.json | 1 + extensions/git/src/api/git.d.ts | 1 + extensions/git/src/git.ts | 6 ++++-- extensions/git/src/repository.ts | 6 ++++++ 5 files changed, 17 insertions(+), 2 deletions(-) diff --git a/extensions/git/package.json b/extensions/git/package.json index a6ef0ef28d5..80526a43d27 100644 --- a/extensions/git/package.json +++ b/extensions/git/package.json @@ -2055,6 +2055,11 @@ "description": "%config.untrackedChanges%", "scope": "resource" }, + "git.requireGitUserConfig": { + "type": "boolean", + "description": "%config.requireGitUserConfig%", + "default": true + }, "git.showCommitInput": { "type": "boolean", "scope": "resource", diff --git a/extensions/git/package.nls.json b/extensions/git/package.nls.json index 29cf8e3ed14..8d18564961e 100644 --- a/extensions/git/package.nls.json +++ b/extensions/git/package.nls.json @@ -174,6 +174,7 @@ "config.untrackedChanges.mixed": "All changes, tracked and untracked, appear together and behave equally.", "config.untrackedChanges.separate": "Untracked changes appear separately in the Source Control view. They are also excluded from several actions.", "config.untrackedChanges.hidden": "Untracked changes are hidden and excluded from several actions.", + "config.requireGitUserConfig": "Controls whether to require explicit Git user configuration or allow Git to guess if missing", "config.showCommitInput": "Controls whether to show the commit input in the Git source control panel.", "config.terminalAuthentication": "Controls whether to enable VS Code to be the authentication handler for git processes spawned in the integrated terminal. Note: terminals need to be restarted to pick up a change in this setting.", "config.timeline.showAuthor": "Controls whether to show the commit author in the Timeline view", diff --git a/extensions/git/src/api/git.d.ts b/extensions/git/src/api/git.d.ts index c6540d3325f..719aef47006 100644 --- a/extensions/git/src/api/git.d.ts +++ b/extensions/git/src/api/git.d.ts @@ -136,6 +136,7 @@ export interface CommitOptions { signCommit?: boolean; empty?: boolean; noVerify?: boolean; + requireUserConfig?: boolean; } export interface BranchQuery { diff --git a/extensions/git/src/git.ts b/extensions/git/src/git.ts index b6745ca32dd..474623b9c4e 100644 --- a/extensions/git/src/git.ts +++ b/extensions/git/src/git.ts @@ -1369,8 +1369,10 @@ export class Repository { args.push('--no-verify'); } - // Stops git from guessing at user/email - args.splice(0, 0, '-c', 'user.useConfigOnly=true'); + if (opts.requireUserConfig ?? true) { + // Stops git from guessing at user/email + args.splice(0, 0, '-c', 'user.useConfigOnly=true'); + } try { await this.run(args, !opts.amend || message ? { input: message || '' } : {}); diff --git a/extensions/git/src/repository.ts b/extensions/git/src/repository.ts index e5c96cd4ab2..7b444626002 100644 --- a/extensions/git/src/repository.ts +++ b/extensions/git/src/repository.ts @@ -1165,6 +1165,12 @@ export class Repository implements Disposable { } delete opts.all; + + if (opts.requireUserConfig === undefined || opts.requireUserConfig === null) { + const config = workspace.getConfiguration('git', Uri.file(this.root)); + opts.requireUserConfig = config.get('requireGitUserConfig'); + } + await this.repository.commit(message, opts); }); } From b2575665d82989901a4bf4f088b6ed49d1b15b45 Mon Sep 17 00:00:00 2001 From: Raymond Zhao Date: Fri, 15 Jan 2021 09:58:10 -0800 Subject: [PATCH 133/171] Emmet wrap update, fixes #113930 --- extensions/emmet/src/abbreviationActions.ts | 44 +++++++++++++++------ 1 file changed, 32 insertions(+), 12 deletions(-) diff --git a/extensions/emmet/src/abbreviationActions.ts b/extensions/emmet/src/abbreviationActions.ts index b91e46559cc..494bf8d29e6 100644 --- a/extensions/emmet/src/abbreviationActions.ts +++ b/extensions/emmet/src/abbreviationActions.ts @@ -49,20 +49,15 @@ function doWrapping(_: boolean, args: any) { } const editor = vscode.window.activeTextEditor; - - const linkedEditingEnabled = vscode.workspace.getConfiguration('editor').get('linkedEditing'); - if (linkedEditingEnabled && editor.selections.find(x => x.isEmpty)) { - const message = localize('linkedEditingIsOnWarning', "Please uncheck the 'editor.linkedEditing' setting as it interferes with this command. To update tags, use the 'Emmet: Update Tag' command instead."); - vscode.window.showErrorMessage(message); - return; - } + const document = editor.document; args = args || {}; if (!args['language']) { - args['language'] = editor.document.languageId; + args['language'] = document.languageId; } + // we know it's not stylesheet due to the validate(false) call above const syntax = getSyntaxFromArgs(args) || 'html'; - const rootNode = parseDocument(editor.document, true); + const rootNode = parseDocument(document, true); let inPreview = false; let currentValue = ''; @@ -71,7 +66,6 @@ function doWrapping(_: boolean, args: any) { // Fetch general information for the succesive expansions. i.e. the ranges to replace and its contents const rangesToReplace: PreviewRangesWithContent[] = editor.selections.sort((a: vscode.Selection, b: vscode.Selection) => { return a.start.compareTo(b.start); }).map(selection => { let rangeToReplace: vscode.Range = selection.isReversed ? new vscode.Range(selection.active, selection.anchor) : selection; - const document = editor.document; if (!rangeToReplace.isSingleLine && rangeToReplace.end.character === 0) { // in case of multi-line, exclude last empty line from rangeToReplace const previousLine = rangeToReplace.end.line - 1; @@ -126,6 +120,28 @@ function doWrapping(_: boolean, args: any) { }; }); + // if a selection falls on a node, it could interfere with linked editing, + // so back up the selections, and change selections to wrap around the node + const oldSelections = editor.selections; + const newSelections: vscode.Selection[] = []; + editor.selections.forEach(selection => { + let { start, end } = selection; + const startOffset = document.offsetAt(start); + const startNode = getFlatNode(rootNode, startOffset, true); + const endOffset = document.offsetAt(end); + const endNode = getFlatNode(rootNode, endOffset, true); + if (startNode) { + start = document.positionAt(startNode.start); + } + if (endNode) { + end = document.positionAt(endNode.end); + } + // don't need to preserve active/anchor order since the selection changes + // after wrapping anyway + newSelections.push(new vscode.Selection(start, end)); + }); + editor.selections = newSelections; + function revertPreview(): Thenable { return editor.edit(builder => { for (const rangeToReplace of rangesToReplace) { @@ -253,8 +269,12 @@ function doWrapping(_: boolean, args: any) { const abbreviationPromise: Thenable = (args && args['abbreviation']) ? Promise.resolve(args['abbreviation']) : vscode.window.showInputBox({ prompt, validateInput: inputChanged }); - return abbreviationPromise.then(inputAbbreviation => { - return makeChanges(inputAbbreviation, true); + return abbreviationPromise.then(async (inputAbbreviation) => { + const changesWereMade = await makeChanges(inputAbbreviation, true); + if (!changesWereMade) { + editor.selections = oldSelections; + } + return changesWereMade; }); } From a31b0617e241f5ccb92327d7556549e2aa05048c Mon Sep 17 00:00:00 2001 From: Megan Rogge Date: Fri, 15 Jan 2021 11:47:57 -0800 Subject: [PATCH 134/171] expose altClickMovesCursor as setting (#114429) * fix #101136 * Update src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts Co-authored-by: Daniel Imms Co-authored-by: Daniel Imms --- .../workbench/contrib/terminal/browser/terminalInstance.ts | 2 ++ src/vs/workbench/contrib/terminal/common/terminal.ts | 1 + .../contrib/terminal/common/terminalConfiguration.ts | 5 +++++ 3 files changed, 8 insertions(+) diff --git a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts index 59eee00f4d9..13ee3d9c464 100644 --- a/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts +++ b/src/vs/workbench/contrib/terminal/browser/terminalInstance.ts @@ -396,6 +396,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { const editorOptions = this._configurationService.getValue('editor'); const xterm = new Terminal({ + altClickMovesCursor: config.altClickMovesCursor, scrollback: config.scrollback, theme: this._getXtermTheme(), drawBoldTextInBrightColors: config.drawBoldTextInBrightColors, @@ -1286,6 +1287,7 @@ export class TerminalInstance extends Disposable implements ITerminalInstance { public updateConfig(): void { const config = this._configHelper.config; + this._safeSetOption('altClickMovesCursor', config.altClickMovesCursor); this._setCursorBlink(config.cursorBlinking); this._setCursorStyle(config.cursorStyle); this._setCursorWidth(config.cursorWidth); diff --git a/src/vs/workbench/contrib/terminal/common/terminal.ts b/src/vs/workbench/contrib/terminal/common/terminal.ts index 40e4f9f8963..845d0715b65 100644 --- a/src/vs/workbench/contrib/terminal/common/terminal.ts +++ b/src/vs/workbench/contrib/terminal/common/terminal.ts @@ -91,6 +91,7 @@ export interface ITerminalConfiguration { osx: string[]; windows: string[]; }; + altClickMovesCursor: boolean; macOptionIsMeta: boolean; macOptionClickForcesSelection: boolean; rendererType: 'auto' | 'canvas' | 'dom' | 'experimentalWebgl'; diff --git a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts index 63dbeb77153..3a949b2e49d 100644 --- a/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts +++ b/src/vs/workbench/contrib/terminal/common/terminalConfiguration.ts @@ -90,6 +90,11 @@ export const terminalConfiguration: IConfigurationNode = { type: 'boolean', default: false }, + 'terminal.integrated.altClickMovesCursor': { + description: localize('terminal.integrated.altClickMovesCursor', "If enabled, alt/option + click will move the prompt cursor to position underneath the mouse. This may not work reliably depending on your shell."), + type: 'boolean', + default: true + }, 'terminal.integrated.copyOnSelection': { description: localize('terminal.integrated.copyOnSelection', "Controls whether text selected in the terminal will be copied to the clipboard."), type: 'boolean', From bec5afa29238013355a57ed69ae6540a4daf3c01 Mon Sep 17 00:00:00 2001 From: deepak1556 Date: Fri, 15 Jan 2021 12:12:35 -0800 Subject: [PATCH 135/171] fix: remove unnessary asar files from mac arm64 --- build/gulpfile.vscode.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/gulpfile.vscode.js b/build/gulpfile.vscode.js index 4670850e6ef..be6dbe7a300 100644 --- a/build/gulpfile.vscode.js +++ b/build/gulpfile.vscode.js @@ -223,7 +223,7 @@ function packageTask(platform, arch, sourceFolderName, destinationFolderName, op const dependenciesSrc = _.flatten(productionDependencies.map(d => path.relative(root, d.path)).map(d => [`${d}/**`, `!${d}/**/{test,tests}/**`])); const deps = gulp.src(dependenciesSrc, { base: '.', dot: true }) - .pipe(filter(['**', '!**/package-lock.json', '!**/yarn.lock', '!**/*.js.map'])) + .pipe(filter(['**', `!**/${config.version}/**`, '!**/bin/darwin-arm64-85/**', '!**/package-lock.json', '!**/yarn.lock', '!**/*.js.map'])) .pipe(util.cleanNodeModules(path.join(__dirname, '.moduleignore'))) .pipe(jsFilter) .pipe(util.rewriteSourceMappingURL(sourceMappingURLBase)) From 3a9daf3e34a782a7fc0cc3a9b92b601deb4d2723 Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Fri, 15 Jan 2021 13:00:34 -0800 Subject: [PATCH 136/171] Adopt new vscode-userdata path format --- extensions/search-result/src/extension.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/extensions/search-result/src/extension.ts b/extensions/search-result/src/extension.ts index f4f0747fd12..65bf1d66d92 100644 --- a/extensions/search-result/src/extension.ts +++ b/extensions/search-result/src/extension.ts @@ -128,15 +128,19 @@ export function activate(context: vscode.ExtensionContext) { function relativePathToUri(path: string, resultsUri: vscode.Uri): vscode.Uri | undefined { - const homePath = process.env.HOME || process.env.HOMEPATH || ''; - const scheme = homePath ? 'file' : 'vscode-userdata'; + + const userDataPrefix = 'vscode-userdata:'; + if (path.startsWith(userDataPrefix)) { + return vscode.Uri.file(path.slice(userDataPrefix.length)).with({ scheme: 'vscode-userdata' }); + } if (pathUtils.isAbsolute(path)) { - return vscode.Uri.file(path).with({ scheme }); + return vscode.Uri.file(path); } if (path.indexOf('~/') === 0) { - return vscode.Uri.file(pathUtils.join(homePath, path.slice(2))).with({ scheme }); + const homePath = process.env.HOME || process.env.HOMEPATH || ''; + return vscode.Uri.file(pathUtils.join(homePath, path.slice(2))); } const uriFromFolderWithPath = (folder: vscode.WorkspaceFolder, path: string): vscode.Uri => From b813d5dd3004643986916c3a67c3ef4410ddeb19 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Fri, 15 Jan 2021 22:12:23 +0100 Subject: [PATCH 137/171] Leave the local extension host running when connection is lost to the remote extension host --- extensions/vscode-test-resolver/src/extension.ts | 3 +++ .../services/extensions/common/abstractExtensionService.ts | 4 +++- .../services/extensions/common/remoteExtensionHost.ts | 7 +++++++ 3 files changed, 13 insertions(+), 1 deletion(-) diff --git a/extensions/vscode-test-resolver/src/extension.ts b/extensions/vscode-test-resolver/src/extension.ts index 11d2cd3d147..91b4d41bc66 100644 --- a/extensions/vscode-test-resolver/src/extension.ts +++ b/extensions/vscode-test-resolver/src/extension.ts @@ -229,6 +229,9 @@ export function activate(context: vscode.ExtensionContext) { } vscode.workspace.registerRemoteAuthorityResolver('test', { async resolve(_authority: string): Promise { + setTimeout(async () => { + await vscode.window.showErrorMessage('Just a custom message.', { modal: true, useCustom: true }, 'OK', 'Great'); + }, 2000); throw vscode.RemoteAuthorityResolverError.NotAvailable('Intentional Error', true); } }); diff --git a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts index 612584c3a4e..c3aab1b7d03 100644 --- a/src/vs/workbench/services/extensions/common/abstractExtensionService.ts +++ b/src/vs/workbench/services/extensions/common/abstractExtensionService.ts @@ -464,7 +464,9 @@ export abstract class AbstractExtensionService extends Disposable implements IEx protected _onExtensionHostCrashed(extensionHost: ExtensionHostManager, code: number, signal: string | null): void { console.error('Extension host terminated unexpectedly. Code: ', code, ' Signal: ', signal); - this._stopExtensionHosts(); + if (extensionHost.kind === ExtensionHostKind.LocalProcess) { + this._stopExtensionHosts(); + } } //#region IExtensionService diff --git a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts index 40967da4cad..7e8a66b2be4 100644 --- a/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts +++ b/src/vs/workbench/services/extensions/common/remoteExtensionHost.ts @@ -57,6 +57,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { public readonly onExit: Event<[number, string | null]> = this._onExit.event; private _protocol: PersistentProtocol | null; + private _hasLostConnection: boolean; private _terminating: boolean; private readonly _isExtensionDevHost: boolean; @@ -77,6 +78,7 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { super(); this.remoteAuthority = this._initDataProvider.remoteAuthority; this._protocol = null; + this._hasLostConnection = false; this._terminating = false; this._register(this._lifecycleService.onShutdown(reason => this.dispose())); @@ -188,6 +190,11 @@ export class RemoteExtensionHost extends Disposable implements IExtensionHost { } private _onExtHostConnectionLost(): void { + if (this._hasLostConnection) { + // avoid re-entering this method + return; + } + this._hasLostConnection = true; if (this._isExtensionDevHost && this._environmentService.debugExtensionHost.debugId) { this._extensionHostDebugService.close(this._environmentService.debugExtensionHost.debugId); From 800e173c403202f652b5984d5125a3579e0445fd Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 15 Jan 2021 11:19:33 -0800 Subject: [PATCH 138/171] Split ts into unit and smoke tests The smoke tests are less reliable as they simulate user actions Fixes #102075 Fixes #102097 Fixes #102106 --- .../src/languageFeatures/jsDocCompletions.ts | 4 +-- .../src/test-all.ts | 28 +++++++++++++++++++ .../src/test/{ => smoke}/completions.test.ts | 6 ++-- .../src/test/{ => smoke}/fixAll.test.ts | 4 +-- .../src/test/smoke/index.ts | 28 +++++++++++++++++++ .../src/test/{ => smoke}/quickFix.test.ts | 4 +-- .../{ => smoke}/referencesCodeLens.test.ts | 4 +-- .../test/{ => unit}/cachedResponse.test.ts | 6 ++-- .../{ => unit}/functionCallSnippet.test.ts | 2 +- .../src/test/unit/index.ts | 28 +++++++++++++++++++ .../test/{ => unit}/jsDocCompletions.test.ts | 6 ++-- .../src/test/{ => unit}/jsdocSnippet.test.ts | 4 +-- .../src/test/{ => unit}/onEnter.test.ts | 2 +- .../src/test/{ => unit}/previewer.test.ts | 2 +- .../src/test/{ => unit}/requestQueue.test.ts | 2 +- .../src/test/{ => unit}/server.test.ts | 16 +++++------ scripts/test-integration.bat | 4 +-- scripts/test-integration.sh | 4 +-- 18 files changed, 119 insertions(+), 35 deletions(-) create mode 100644 extensions/typescript-language-features/src/test-all.ts rename extensions/typescript-language-features/src/test/{ => smoke}/completions.test.ts (99%) rename extensions/typescript-language-features/src/test/{ => smoke}/fixAll.test.ts (96%) create mode 100644 extensions/typescript-language-features/src/test/smoke/index.ts rename extensions/typescript-language-features/src/test/{ => smoke}/quickFix.test.ts (98%) rename extensions/typescript-language-features/src/test/{ => smoke}/referencesCodeLens.test.ts (97%) rename extensions/typescript-language-features/src/test/{ => unit}/cachedResponse.test.ts (96%) rename extensions/typescript-language-features/src/test/{ => unit}/functionCallSnippet.test.ts (99%) create mode 100644 extensions/typescript-language-features/src/test/unit/index.ts rename extensions/typescript-language-features/src/test/{ => unit}/jsDocCompletions.test.ts (92%) rename extensions/typescript-language-features/src/test/{ => unit}/jsdocSnippet.test.ts (94%) rename extensions/typescript-language-features/src/test/{ => unit}/onEnter.test.ts (99%) rename extensions/typescript-language-features/src/test/{ => unit}/previewer.test.ts (96%) rename extensions/typescript-language-features/src/test/{ => unit}/requestQueue.test.ts (98%) rename extensions/typescript-language-features/src/test/{ => unit}/server.test.ts (84%) diff --git a/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts b/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts index 6e091af1692..40ff796ec46 100644 --- a/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts +++ b/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts @@ -95,9 +95,9 @@ export function templateToSnippet(template: string): vscode.SnippetString { // TODO: use append placeholder let snippetIndex = 1; template = template.replace(/\$/g, '\\$'); - template = template.replace(/^\s*(?=(\/|[ ]\*))/gm, ''); + template = template.replace(/^[ \t]*(?=(\/|[ ]\*))/gm, ''); template = template.replace(/^(\/\*\*\s*\*[ ]*)$/m, (x) => x + `\$0`); - template = template.replace(/\* @param([ ]\{\S+\})?\s+(\S+)\s*$/gm, (_param, type, post) => { + template = template.replace(/\* @param([ ]\{\S+\})?\s+(\S+)[ \t]$/gm, (_param, type, post) => { let out = '* @param '; if (type === ' {any}' || type === ' {*}') { out += `{\$\{${snippetIndex++}:*\}} `; diff --git a/extensions/typescript-language-features/src/test-all.ts b/extensions/typescript-language-features/src/test-all.ts new file mode 100644 index 00000000000..0057b8aa4a8 --- /dev/null +++ b/extensions/typescript-language-features/src/test-all.ts @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +// +// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING +// +// This file is providing the test runner to use when running extension tests. +// By default the test runner in use is Mocha based. +// +// You can provide your own test runner if you want to override it by exporting +// a function run(testRoot: string, clb: (error:Error) => void) that the extension +// host can call to run the tests. The test runner is expected to use console.log +// to report the results back to the caller. When the tests are finished, return +// a possible error to the callback or null if none. + +const testRunner = require('../../../test/integration/electron/testrunner'); + +// You can directly control Mocha options by uncommenting the following lines +// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info +testRunner.configure({ + ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) + useColors: (!process.env.BUILD_ARTIFACTSTAGINGDIRECTORY && process.platform !== 'win32'), // colored output from test results (only windows cannot handle) + timeout: 60000, +}); + +export = testRunner; diff --git a/extensions/typescript-language-features/src/test/completions.test.ts b/extensions/typescript-language-features/src/test/smoke/completions.test.ts similarity index 99% rename from extensions/typescript-language-features/src/test/completions.test.ts rename to extensions/typescript-language-features/src/test/smoke/completions.test.ts index 1e651274541..b89226c5098 100644 --- a/extensions/typescript-language-features/src/test/completions.test.ts +++ b/extensions/typescript-language-features/src/test/smoke/completions.test.ts @@ -5,9 +5,9 @@ import 'mocha'; import * as vscode from 'vscode'; -import { disposeAll } from '../utils/dispose'; -import { acceptFirstSuggestion, typeCommitCharacter } from './suggestTestHelpers'; -import { assertEditorContents, Config, createTestEditor, enumerateConfig, joinLines, updateConfig, VsCodeConfiguration } from './testUtils'; +import { disposeAll } from '../../utils/dispose'; +import { acceptFirstSuggestion, typeCommitCharacter } from '../../test/suggestTestHelpers'; +import { assertEditorContents, Config, createTestEditor, enumerateConfig, joinLines, updateConfig, VsCodeConfiguration } from '../../test/testUtils'; const testDocumentUri = vscode.Uri.parse('untitled:test.ts'); diff --git a/extensions/typescript-language-features/src/test/fixAll.test.ts b/extensions/typescript-language-features/src/test/smoke/fixAll.test.ts similarity index 96% rename from extensions/typescript-language-features/src/test/fixAll.test.ts rename to extensions/typescript-language-features/src/test/smoke/fixAll.test.ts index 97ec0679e47..303693f35e5 100644 --- a/extensions/typescript-language-features/src/test/fixAll.test.ts +++ b/extensions/typescript-language-features/src/test/smoke/fixAll.test.ts @@ -6,8 +6,8 @@ import 'mocha'; import * as assert from 'assert'; import * as vscode from 'vscode'; -import { disposeAll } from '../utils/dispose'; -import { createTestEditor, wait, joinLines } from './testUtils'; +import { disposeAll } from '../../utils/dispose'; +import { createTestEditor, wait, joinLines } from '../../test/testUtils'; const testDocumentUri = vscode.Uri.parse('untitled:test.ts'); diff --git a/extensions/typescript-language-features/src/test/smoke/index.ts b/extensions/typescript-language-features/src/test/smoke/index.ts new file mode 100644 index 00000000000..7c6b176189c --- /dev/null +++ b/extensions/typescript-language-features/src/test/smoke/index.ts @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +// +// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING +// +// This file is providing the test runner to use when running extension tests. +// By default the test runner in use is Mocha based. +// +// You can provide your own test runner if you want to override it by exporting +// a function run(testRoot: string, clb: (error:Error) => void) that the extension +// host can call to run the tests. The test runner is expected to use console.log +// to report the results back to the caller. When the tests are finished, return +// a possible error to the callback or null if none. + +const testRunner = require('../../../../../test/integration/electron/testrunner'); + +// You can directly control Mocha options by uncommenting the following lines +// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info +testRunner.configure({ + ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) + useColors: (!process.env.BUILD_ARTIFACTSTAGINGDIRECTORY && process.platform !== 'win32'), // colored output from test results (only windows cannot handle) + timeout: 60000, +}); + +export = testRunner; diff --git a/extensions/typescript-language-features/src/test/quickFix.test.ts b/extensions/typescript-language-features/src/test/smoke/quickFix.test.ts similarity index 98% rename from extensions/typescript-language-features/src/test/quickFix.test.ts rename to extensions/typescript-language-features/src/test/smoke/quickFix.test.ts index 169cc91dee3..a22118201fe 100644 --- a/extensions/typescript-language-features/src/test/quickFix.test.ts +++ b/extensions/typescript-language-features/src/test/smoke/quickFix.test.ts @@ -6,8 +6,8 @@ import * as assert from 'assert'; import 'mocha'; import * as vscode from 'vscode'; -import { disposeAll } from '../utils/dispose'; -import { createTestEditor, joinLines, retryUntilDocumentChanges, wait } from './testUtils'; +import { disposeAll } from '../../utils/dispose'; +import { createTestEditor, joinLines, retryUntilDocumentChanges, wait } from '../../test/testUtils'; suite.skip('TypeScript Quick Fix', () => { diff --git a/extensions/typescript-language-features/src/test/referencesCodeLens.test.ts b/extensions/typescript-language-features/src/test/smoke/referencesCodeLens.test.ts similarity index 97% rename from extensions/typescript-language-features/src/test/referencesCodeLens.test.ts rename to extensions/typescript-language-features/src/test/smoke/referencesCodeLens.test.ts index 80ecd3a5499..4a7fbd1ffb5 100644 --- a/extensions/typescript-language-features/src/test/referencesCodeLens.test.ts +++ b/extensions/typescript-language-features/src/test/smoke/referencesCodeLens.test.ts @@ -6,8 +6,8 @@ import * as assert from 'assert'; import 'mocha'; import * as vscode from 'vscode'; -import { disposeAll } from '../utils/dispose'; -import { createTestEditor, wait } from './testUtils'; +import { disposeAll } from '../../utils/dispose'; +import { createTestEditor, wait } from '../../test/testUtils'; type VsCodeConfiguration = { [key: string]: any }; diff --git a/extensions/typescript-language-features/src/test/cachedResponse.test.ts b/extensions/typescript-language-features/src/test/unit/cachedResponse.test.ts similarity index 96% rename from extensions/typescript-language-features/src/test/cachedResponse.test.ts rename to extensions/typescript-language-features/src/test/unit/cachedResponse.test.ts index ae05f5d4426..1b0dd441120 100644 --- a/extensions/typescript-language-features/src/test/cachedResponse.test.ts +++ b/extensions/typescript-language-features/src/test/unit/cachedResponse.test.ts @@ -6,9 +6,9 @@ import * as assert from 'assert'; import 'mocha'; import * as vscode from 'vscode'; -import type * as Proto from '../protocol'; -import { CachedResponse } from '../tsServer/cachedResponse'; -import { ServerResponse } from '../typescriptService'; +import type * as Proto from '../../protocol'; +import { CachedResponse } from '../../tsServer/cachedResponse'; +import { ServerResponse } from '../../typescriptService'; suite('CachedResponse', () => { test('should cache simple response for same document', async () => { diff --git a/extensions/typescript-language-features/src/test/functionCallSnippet.test.ts b/extensions/typescript-language-features/src/test/unit/functionCallSnippet.test.ts similarity index 99% rename from extensions/typescript-language-features/src/test/functionCallSnippet.test.ts rename to extensions/typescript-language-features/src/test/unit/functionCallSnippet.test.ts index 5c8cf18c73c..c5f8e8539aa 100644 --- a/extensions/typescript-language-features/src/test/functionCallSnippet.test.ts +++ b/extensions/typescript-language-features/src/test/unit/functionCallSnippet.test.ts @@ -9,7 +9,7 @@ import * as assert from 'assert'; import 'mocha'; import * as vscode from 'vscode'; -import { snippetForFunctionCall } from '../utils/snippetForFunctionCall'; +import { snippetForFunctionCall } from '../../utils/snippetForFunctionCall'; suite('typescript function call snippets', () => { test('Should use label as function name', async () => { diff --git a/extensions/typescript-language-features/src/test/unit/index.ts b/extensions/typescript-language-features/src/test/unit/index.ts new file mode 100644 index 00000000000..7c6b176189c --- /dev/null +++ b/extensions/typescript-language-features/src/test/unit/index.ts @@ -0,0 +1,28 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +// +// PLEASE DO NOT MODIFY / DELETE UNLESS YOU KNOW WHAT YOU ARE DOING +// +// This file is providing the test runner to use when running extension tests. +// By default the test runner in use is Mocha based. +// +// You can provide your own test runner if you want to override it by exporting +// a function run(testRoot: string, clb: (error:Error) => void) that the extension +// host can call to run the tests. The test runner is expected to use console.log +// to report the results back to the caller. When the tests are finished, return +// a possible error to the callback or null if none. + +const testRunner = require('../../../../../test/integration/electron/testrunner'); + +// You can directly control Mocha options by uncommenting the following lines +// See https://github.com/mochajs/mocha/wiki/Using-mocha-programmatically#set-options for more info +testRunner.configure({ + ui: 'tdd', // the TDD UI is being used in extension.test.ts (suite, test, etc.) + useColors: (!process.env.BUILD_ARTIFACTSTAGINGDIRECTORY && process.platform !== 'win32'), // colored output from test results (only windows cannot handle) + timeout: 60000, +}); + +export = testRunner; diff --git a/extensions/typescript-language-features/src/test/jsDocCompletions.test.ts b/extensions/typescript-language-features/src/test/unit/jsDocCompletions.test.ts similarity index 92% rename from extensions/typescript-language-features/src/test/jsDocCompletions.test.ts rename to extensions/typescript-language-features/src/test/unit/jsDocCompletions.test.ts index d824fbb4f5d..a347c5b67d0 100644 --- a/extensions/typescript-language-features/src/test/jsDocCompletions.test.ts +++ b/extensions/typescript-language-features/src/test/unit/jsDocCompletions.test.ts @@ -5,9 +5,9 @@ import 'mocha'; import * as vscode from 'vscode'; -import { disposeAll } from '../utils/dispose'; -import { acceptFirstSuggestion } from './suggestTestHelpers'; -import { assertEditorContents, Config, createTestEditor, CURSOR, enumerateConfig, insertModesValues, joinLines, updateConfig, VsCodeConfiguration } from './testUtils'; +import { disposeAll } from '../../utils/dispose'; +import { acceptFirstSuggestion } from '../suggestTestHelpers'; +import { assertEditorContents, Config, createTestEditor, CURSOR, enumerateConfig, insertModesValues, joinLines, updateConfig, VsCodeConfiguration } from '../testUtils'; const testDocumentUri = vscode.Uri.parse('untitled:test.ts'); diff --git a/extensions/typescript-language-features/src/test/jsdocSnippet.test.ts b/extensions/typescript-language-features/src/test/unit/jsdocSnippet.test.ts similarity index 94% rename from extensions/typescript-language-features/src/test/jsdocSnippet.test.ts rename to extensions/typescript-language-features/src/test/unit/jsdocSnippet.test.ts index 89464a2dd44..ebf1552df33 100644 --- a/extensions/typescript-language-features/src/test/jsdocSnippet.test.ts +++ b/extensions/typescript-language-features/src/test/unit/jsdocSnippet.test.ts @@ -6,8 +6,8 @@ import * as assert from 'assert'; import 'mocha'; import * as vscode from 'vscode'; -import { templateToSnippet } from '../languageFeatures/jsDocCompletions'; -import { joinLines } from './testUtils'; +import { templateToSnippet } from '../../languageFeatures/jsDocCompletions'; +import { joinLines } from '../testUtils'; suite('typescript.jsDocSnippet', () => { diff --git a/extensions/typescript-language-features/src/test/onEnter.test.ts b/extensions/typescript-language-features/src/test/unit/onEnter.test.ts similarity index 99% rename from extensions/typescript-language-features/src/test/onEnter.test.ts rename to extensions/typescript-language-features/src/test/unit/onEnter.test.ts index 5ec03f5c40a..16f08b4960e 100644 --- a/extensions/typescript-language-features/src/test/onEnter.test.ts +++ b/extensions/typescript-language-features/src/test/unit/onEnter.test.ts @@ -6,7 +6,7 @@ import * as assert from 'assert'; import 'mocha'; import * as vscode from 'vscode'; -import { CURSOR, withRandomFileEditor, wait, joinLines } from './testUtils'; +import { CURSOR, withRandomFileEditor, wait, joinLines } from '../testUtils'; const onDocumentChange = (doc: vscode.TextDocument): Promise => { return new Promise(resolve => { diff --git a/extensions/typescript-language-features/src/test/previewer.test.ts b/extensions/typescript-language-features/src/test/unit/previewer.test.ts similarity index 96% rename from extensions/typescript-language-features/src/test/previewer.test.ts rename to extensions/typescript-language-features/src/test/unit/previewer.test.ts index b92c0019631..38bfc14ecbb 100644 --- a/extensions/typescript-language-features/src/test/previewer.test.ts +++ b/extensions/typescript-language-features/src/test/unit/previewer.test.ts @@ -5,7 +5,7 @@ import * as assert from 'assert'; import 'mocha'; -import { tagsMarkdownPreview, markdownDocumentation } from '../utils/previewer'; +import { tagsMarkdownPreview, markdownDocumentation } from '../../utils/previewer'; suite('typescript.previewer', () => { test('Should ignore hyphens after a param tag', async () => { diff --git a/extensions/typescript-language-features/src/test/requestQueue.test.ts b/extensions/typescript-language-features/src/test/unit/requestQueue.test.ts similarity index 98% rename from extensions/typescript-language-features/src/test/requestQueue.test.ts rename to extensions/typescript-language-features/src/test/unit/requestQueue.test.ts index 9103792686e..1568a95e43c 100644 --- a/extensions/typescript-language-features/src/test/requestQueue.test.ts +++ b/extensions/typescript-language-features/src/test/unit/requestQueue.test.ts @@ -5,7 +5,7 @@ import * as assert from 'assert'; import 'mocha'; -import { RequestQueue, RequestQueueingType } from '../tsServer/requestQueue'; +import { RequestQueue, RequestQueueingType } from '../../tsServer/requestQueue'; suite('RequestQueue', () => { test('should be empty on creation', async () => { diff --git a/extensions/typescript-language-features/src/test/server.test.ts b/extensions/typescript-language-features/src/test/unit/server.test.ts similarity index 84% rename from extensions/typescript-language-features/src/test/server.test.ts rename to extensions/typescript-language-features/src/test/unit/server.test.ts index d95b16e06ba..09ea48e00ef 100644 --- a/extensions/typescript-language-features/src/test/server.test.ts +++ b/extensions/typescript-language-features/src/test/unit/server.test.ts @@ -6,14 +6,14 @@ import * as assert from 'assert'; import 'mocha'; import * as stream from 'stream'; -import type * as Proto from '../protocol'; -import { NodeRequestCanceller } from '../tsServer/cancellation.electron'; -import { ProcessBasedTsServer, TsServerProcess } from '../tsServer/server'; -import { ServerType } from '../typescriptService'; -import { nulToken } from '../utils/cancellation'; -import { Logger } from '../utils/logger'; -import { TelemetryReporter } from '../utils/telemetry'; -import Tracer from '../utils/tracer'; +import type * as Proto from '../../protocol'; +import { NodeRequestCanceller } from '../../tsServer/cancellation.electron'; +import { ProcessBasedTsServer, TsServerProcess } from '../../tsServer/server'; +import { ServerType } from '../../typescriptService'; +import { nulToken } from '../../utils/cancellation'; +import { Logger } from '../../utils/logger'; +import { TelemetryReporter } from '../../utils/telemetry'; +import Tracer from '../../utils/tracer'; const NoopTelemetryReporter = new class implements TelemetryReporter { diff --git a/scripts/test-integration.bat b/scripts/test-integration.bat index 6634ee9df11..bfa29b83e32 100644 --- a/scripts/test-integration.bat +++ b/scripts/test-integration.bat @@ -50,8 +50,8 @@ if %errorlevel% neq 0 exit /b %errorlevel% call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\vscode-api-tests\testworkspace.code-workspace --enable-proposed-api=vscode.vscode-api-tests --extensionDevelopmentPath=%~dp0\..\extensions\vscode-api-tests --extensionTestsPath=%~dp0\..\extensions\vscode-api-tests\out\workspace-tests --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% if %errorlevel% neq 0 exit /b %errorlevel% -REM call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% -REM if %errorlevel% neq 0 exit /b %errorlevel% +call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\typescript-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\typescript-language-features --extensionTestsPath=%~dp0\..\extensions\typescript-language-features\out\test\unit --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% +if %errorlevel% neq 0 exit /b %errorlevel% call "%INTEGRATION_TEST_ELECTRON_PATH%" %~dp0\..\extensions\markdown-language-features\test-workspace --extensionDevelopmentPath=%~dp0\..\extensions\markdown-language-features --extensionTestsPath=%~dp0\..\extensions\markdown-language-features\out\test --disable-telemetry --crash-reporter-directory=%VSCODECRASHDIR% --no-cached-data --disable-updates --disable-extensions --user-data-dir=%VSCODEUSERDATADIR% if %errorlevel% neq 0 exit /b %errorlevel% diff --git a/scripts/test-integration.sh b/scripts/test-integration.sh index 3bb8dce32bc..d59d608d191 100755 --- a/scripts/test-integration.sh +++ b/scripts/test-integration.sh @@ -75,8 +75,8 @@ after_suite "$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/markdown-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/markdown-language-features --extensionTestsPath=$ROOT/extensions/markdown-language-features/out/test --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR after_suite -#"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/typescript-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/typescript-language-features --extensionTestsPath=$ROOT/extensions/typescript-language-features/out/test --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR -# after_suite +"$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/typescript-language-features/test-workspace --extensionDevelopmentPath=$ROOT/extensions/typescript-language-features --extensionTestsPath=$ROOT/extensions/typescript-language-features/out/test/unit --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR +after_suite "$INTEGRATION_TEST_ELECTRON_PATH" $LINUX_EXTRA_ARGS $ROOT/extensions/emmet/out/test/test-fixtures --extensionDevelopmentPath=$ROOT/extensions/emmet --extensionTestsPath=$ROOT/extensions/emmet/out/test --disable-telemetry --crash-reporter-directory=$VSCODECRASHDIR --no-cached-data --disable-updates --disable-extensions --user-data-dir=$VSCODEUSERDATADIR after_suite From 5f6acfb68e15442504504852cb1845e06701a803 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 15 Jan 2021 13:47:58 -0800 Subject: [PATCH 139/171] Move jsdoc completion tests to smoke tests --- .../src/test/{unit => smoke}/jsDocCompletions.test.ts | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename extensions/typescript-language-features/src/test/{unit => smoke}/jsDocCompletions.test.ts (100%) diff --git a/extensions/typescript-language-features/src/test/unit/jsDocCompletions.test.ts b/extensions/typescript-language-features/src/test/smoke/jsDocCompletions.test.ts similarity index 100% rename from extensions/typescript-language-features/src/test/unit/jsDocCompletions.test.ts rename to extensions/typescript-language-features/src/test/smoke/jsDocCompletions.test.ts From 48b726e39e70079ec813b598f14184237523bd51 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 15 Jan 2021 14:35:55 -0800 Subject: [PATCH 140/171] Fix regex Star was mistakenly removed in last commit --- .../src/languageFeatures/jsDocCompletions.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts b/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts index 40ff796ec46..6efe472e4f9 100644 --- a/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts +++ b/extensions/typescript-language-features/src/languageFeatures/jsDocCompletions.ts @@ -97,7 +97,7 @@ export function templateToSnippet(template: string): vscode.SnippetString { template = template.replace(/\$/g, '\\$'); template = template.replace(/^[ \t]*(?=(\/|[ ]\*))/gm, ''); template = template.replace(/^(\/\*\*\s*\*[ ]*)$/m, (x) => x + `\$0`); - template = template.replace(/\* @param([ ]\{\S+\})?\s+(\S+)[ \t]$/gm, (_param, type, post) => { + template = template.replace(/\* @param([ ]\{\S+\})?\s+(\S+)[ \t]*$/gm, (_param, type, post) => { let out = '* @param '; if (type === ' {any}' || type === ' {*}') { out += `{\$\{${snippetIndex++}:*\}} `; From 0faf15502893849f125a14c951edf86fdaa91979 Mon Sep 17 00:00:00 2001 From: Matt Bierner Date: Fri, 15 Jan 2021 16:07:08 -0800 Subject: [PATCH 141/171] Disable on enter test This one seems to sometimes fail in ci on windows --- .../typescript-language-features/src/test/unit/onEnter.test.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/extensions/typescript-language-features/src/test/unit/onEnter.test.ts b/extensions/typescript-language-features/src/test/unit/onEnter.test.ts index 16f08b4960e..0aeb8425b0a 100644 --- a/extensions/typescript-language-features/src/test/unit/onEnter.test.ts +++ b/extensions/typescript-language-features/src/test/unit/onEnter.test.ts @@ -27,7 +27,7 @@ const type = async (document: vscode.TextDocument, text: string): Promise { +suite.skip('OnEnter', () => { setup(async () => { // the tests make the assumption that language rules are registered await vscode.extensions.getExtension('vscode.typescript-language-features')!.activate(); From c5f0bac2a816b4e3ab1d9cf3f099d34fd934e4d6 Mon Sep 17 00:00:00 2001 From: Rachel Macfarlane Date: Fri, 15 Jan 2021 16:25:34 -0800 Subject: [PATCH 142/171] Create issue directly if signed in, fixes #95165 --- .../issue/issueReporterMain.ts | 59 ++++++++++++++++++- src/vs/platform/issue/common/issue.ts | 1 + .../issue/electron-sandbox/issueService.ts | 9 ++- 3 files changed, 65 insertions(+), 4 deletions(-) diff --git a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts index fafe76a3e1e..6d339e85815 100644 --- a/src/vs/code/electron-sandbox/issue/issueReporterMain.ts +++ b/src/vs/code/electron-sandbox/issue/issueReporterMain.ts @@ -441,7 +441,11 @@ export class IssueReporter extends Disposable { private updatePreviewButtonState() { if (this.isPreviewEnabled()) { - this.previewButton.label = localize('previewOnGitHub', "Preview on GitHub"); + if (this.configuration.data.githubAccessToken) { + this.previewButton.label = localize('createOnGitHub', "Create on GitHub"); + } else { + this.previewButton.label = localize('previewOnGitHub', "Preview on GitHub"); + } this.previewButton.enabled = true; } else { this.previewButton.enabled = false; @@ -776,6 +780,35 @@ export class IssueReporter extends Disposable { return isValid; } + private async submitToGitHub(issueTitle: string, issueBody: string, gitHubDetails: { owner: string, repositoryName: string }): Promise { + const url = `https://api.github.com/repos/${gitHubDetails.owner}/${gitHubDetails.repositoryName}/issues`; + const init = { + method: 'POST', + body: JSON.stringify({ + title: issueTitle, + body: issueBody + }), + headers: new Headers({ + 'Content-Type': 'application/json', + 'Authorization': `Bearer ${this.configuration.data.githubAccessToken}` + }) + }; + + return new Promise((resolve, reject) => { + window.fetch(url, init).then((response) => { + if (response.ok) { + response.json().then(result => { + ipcRenderer.send('vscode:openExternal', result.html_url); + ipcRenderer.send('vscode:closeIssueReporter'); + resolve(true); + }); + } else { + resolve(false); + } + }); + }); + } + private async createIssue(): Promise { if (!this.validateInputs()) { // If inputs are invalid, set focus to the first one and add listeners on them @@ -808,8 +841,16 @@ export class IssueReporter extends Disposable { this.hasBeenSubmitted = true; - const baseUrl = this.getIssueUrlWithTitle((this.getElementById('issue-title')).value); + const issueTitle = (this.getElementById('issue-title')).value; const issueBody = this.issueReporterModel.serialize(); + + const issueUrl = this.issueReporterModel.fileOnExtension() ? this.getExtensionGitHubUrl() : this.configuration.product.reportIssueUrl!; + const gitHubDetails = this.parseGitHubUrl(issueUrl); + if (this.configuration.data.githubAccessToken && gitHubDetails) { + return this.submitToGitHub(issueTitle, issueBody, gitHubDetails); + } + + const baseUrl = this.getIssueUrlWithTitle((this.getElementById('issue-title')).value); let url = baseUrl + `&body=${encodeURIComponent(issueBody)}`; if (url.length > MAX_URL_LENGTH) { @@ -839,6 +880,20 @@ export class IssueReporter extends Disposable { }); } + private parseGitHubUrl(url: string): undefined | { repositoryName: string, owner: string } { + // Assumes a GitHub url to a particular repo, https://github.com/repositoryName/owner. + // Repository name and owner cannot contain '/' + const match = /^https?:\/\/github\.com\/([^\/]*)\/([^\/]*).*/.exec(url); + if (match && match.length) { + return { + owner: match[1], + repositoryName: match[2] + }; + } + + return undefined; + } + private getExtensionGitHubUrl(): string { let repositoryUrl = ''; const bugsUrl = this.getExtensionBugsUrl(); diff --git a/src/vs/platform/issue/common/issue.ts b/src/vs/platform/issue/common/issue.ts index ba0bae45c5a..fc36369c68c 100644 --- a/src/vs/platform/issue/common/issue.ts +++ b/src/vs/platform/issue/common/issue.ts @@ -56,6 +56,7 @@ export interface IssueReporterData extends WindowData { issueType?: IssueType; extensionId?: string; experiments?: string; + githubAccessToken: string; readonly issueTitle?: string; readonly issueBody?: string; } diff --git a/src/vs/workbench/contrib/issue/electron-sandbox/issueService.ts b/src/vs/workbench/contrib/issue/electron-sandbox/issueService.ts index 47f72a58ba7..94beb1646ae 100644 --- a/src/vs/workbench/contrib/issue/electron-sandbox/issueService.ts +++ b/src/vs/workbench/contrib/issue/electron-sandbox/issueService.ts @@ -17,6 +17,7 @@ import { ExtensionType } from 'vs/platform/extensions/common/extensions'; import { process } from 'vs/base/parts/sandbox/electron-sandbox/globals'; import { IProductService } from 'vs/platform/product/common/productService'; import { ITASExperimentService } from 'vs/workbench/services/experiment/common/experimentService'; +import { IAuthenticationService } from 'vs/workbench/services/authentication/browser/authenticationService'; export class WorkbenchIssueService implements IWorkbenchIssueService { declare readonly _serviceBrand: undefined; @@ -28,7 +29,8 @@ export class WorkbenchIssueService implements IWorkbenchIssueService { @IWorkbenchExtensionEnablementService private readonly extensionEnablementService: IWorkbenchExtensionEnablementService, @INativeWorkbenchEnvironmentService private readonly environmentService: INativeWorkbenchEnvironmentService, @IProductService private readonly productService: IProductService, - @ITASExperimentService private readonly experimentService: ITASExperimentService + @ITASExperimentService private readonly experimentService: ITASExperimentService, + @IAuthenticationService private readonly authenticationService: IAuthenticationService ) { } async openReporter(dataOverrides: Partial = {}): Promise { @@ -52,12 +54,15 @@ export class WorkbenchIssueService implements IWorkbenchIssueService { }; }); const experiments = await this.experimentService.getCurrentExperiments(); + const githubSessions = await this.authenticationService.getSessions('github'); + const potentialSessions = githubSessions.filter(session => session.scopes.includes('repo')); const theme = this.themeService.getColorTheme(); const issueReporterData: IssueReporterData = Object.assign({ styles: getIssueReporterStyles(theme), zoomLevel: getZoomLevel(), enabledExtensions: extensionData, - experiments: experiments?.join('\n') + experiments: experiments?.join('\n'), + githubAccessToken: potentialSessions[0]?.accessToken }, dataOverrides); return this.issueService.openReporter(issueReporterData); } From 2e89c2d4ba5659c77ccde02605b87181658f8137 Mon Sep 17 00:00:00 2001 From: Rachel Macfarlane Date: Fri, 15 Jan 2021 17:08:09 -0800 Subject: [PATCH 143/171] Add 'key' to onDidChange of secrets API, #112249 --- src/vs/platform/native/common/native.ts | 2 +- .../native/electron-main/nativeHostMainService.ts | 6 +++--- src/vs/vscode.proposed.d.ts | 12 +++++++++++- .../workbench/api/browser/mainThreadSecretState.ts | 5 +++-- src/vs/workbench/api/common/exHostSecretState.ts | 10 +++++----- src/vs/workbench/api/common/extHost.protocol.ts | 2 +- src/vs/workbench/api/common/extHostSecrets.ts | 10 +++++++--- .../credentials/browser/credentialsService.ts | 8 ++++---- .../services/credentials/common/credentials.ts | 7 ++++++- .../electron-sandbox/credentialsService.ts | 4 ++-- 10 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/vs/platform/native/common/native.ts b/src/vs/platform/native/common/native.ts index 60baf2da4ef..e51b3ac0e22 100644 --- a/src/vs/platform/native/common/native.ts +++ b/src/vs/platform/native/common/native.ts @@ -49,7 +49,7 @@ export interface ICommonNativeHostService { readonly onDidChangeColorScheme: Event; - readonly onDidChangePassword: Event; + readonly onDidChangePassword: Event<{ service: string, account: string }>; // Window getWindows(): Promise; diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts index 2ce235e5328..58318253150 100644 --- a/src/vs/platform/native/electron-main/nativeHostMainService.ts +++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts @@ -90,7 +90,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain private readonly _onDidChangeColorScheme = this._register(new Emitter()); readonly onDidChangeColorScheme = this._onDidChangeColorScheme.event; - private readonly _onDidChangePassword = this._register(new Emitter()); + private readonly _onDidChangePassword = this._register(new Emitter<{ account: string, service: string }>()); readonly onDidChangePassword = this._onDidChangePassword.event; //#endregion @@ -705,7 +705,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain await keytar.setPassword(service, account, password); } - this._onDidChangePassword.fire(); + this._onDidChangePassword.fire({ service, account }); } async deletePassword(windowId: number | undefined, service: string, account: string): Promise { @@ -713,7 +713,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain const didDelete = await keytar.deletePassword(service, account); if (didDelete) { - this._onDidChangePassword.fire(); + this._onDidChangePassword.fire({ service, account }); } return didDelete; diff --git a/src/vs/vscode.proposed.d.ts b/src/vs/vscode.proposed.d.ts index 95f1ede0e40..0432e5972a2 100644 --- a/src/vs/vscode.proposed.d.ts +++ b/src/vs/vscode.proposed.d.ts @@ -2424,6 +2424,16 @@ declare module 'vscode' { //#region https://github.com/microsoft/vscode/issues/112249 + /** + * The event data that is fired when a secret is added or removed. + */ + export interface SecretStorageChangeEvent { + /** + * The key of the secret that has changed. + */ + key: string; + } + /** * Represents a storage utility for secrets, information that is * sensitive. @@ -2453,7 +2463,7 @@ declare module 'vscode' { /** * Fires when a secret is set or deleted. */ - onDidChange: Event; + onDidChange: Event; } export interface ExtensionContext { diff --git a/src/vs/workbench/api/browser/mainThreadSecretState.ts b/src/vs/workbench/api/browser/mainThreadSecretState.ts index 92805a0a12a..4067acedb8b 100644 --- a/src/vs/workbench/api/browser/mainThreadSecretState.ts +++ b/src/vs/workbench/api/browser/mainThreadSecretState.ts @@ -23,8 +23,9 @@ export class MainThreadSecretState extends Disposable implements MainThreadSecre super(); this._proxy = extHostContext.getProxy(ExtHostContext.ExtHostSecretState); - this._register(this.credentialsService.onDidChangePassword(_ => { - this._proxy.$onDidChangePassword(); + this._register(this.credentialsService.onDidChangePassword(e => { + const extensionId = e.service.substring(this.productService.urlProtocol.length); + this._proxy.$onDidChangePassword({ extensionId, key: e.account }); })); } diff --git a/src/vs/workbench/api/common/exHostSecretState.ts b/src/vs/workbench/api/common/exHostSecretState.ts index 35b5d57a61f..2715b881f75 100644 --- a/src/vs/workbench/api/common/exHostSecretState.ts +++ b/src/vs/workbench/api/common/exHostSecretState.ts @@ -4,21 +4,21 @@ *--------------------------------------------------------------------------------------------*/ import { ExtHostSecretStateShape, MainContext, MainThreadSecretStateShape } from 'vs/workbench/api/common/extHost.protocol'; -import { Emitter, Event } from 'vs/base/common/event'; +import { Emitter } from 'vs/base/common/event'; import { IExtHostRpcService } from 'vs/workbench/api/common/extHostRpcService'; import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; export class ExtHostSecretState implements ExtHostSecretStateShape { private _proxy: MainThreadSecretStateShape; - private _onDidChangePassword = new Emitter(); - readonly onDidChangePassword: Event = this._onDidChangePassword.event; + private _onDidChangePassword = new Emitter<{ extensionId: string, key: string }>(); + readonly onDidChangePassword = this._onDidChangePassword.event; constructor(mainContext: IExtHostRpcService) { this._proxy = mainContext.getProxy(MainContext.MainThreadSecretState); } - async $onDidChangePassword(): Promise { - this._onDidChangePassword.fire(); + async $onDidChangePassword(e: { extensionId: string, key: string }): Promise { + this._onDidChangePassword.fire(e); } get(extensionId: string, key: string): Promise { diff --git a/src/vs/workbench/api/common/extHost.protocol.ts b/src/vs/workbench/api/common/extHost.protocol.ts index b2a4e235b00..4320674124c 100644 --- a/src/vs/workbench/api/common/extHost.protocol.ts +++ b/src/vs/workbench/api/common/extHost.protocol.ts @@ -1130,7 +1130,7 @@ export interface ExtHostAuthenticationShape { } export interface ExtHostSecretStateShape { - $onDidChangePassword(): Promise; + $onDidChangePassword(e: { extensionId: string, key: string }): Promise; } export interface ExtHostSearchShape { diff --git a/src/vs/workbench/api/common/extHostSecrets.ts b/src/vs/workbench/api/common/extHostSecrets.ts index d67ec72bcf3..837b36f514f 100644 --- a/src/vs/workbench/api/common/extHostSecrets.ts +++ b/src/vs/workbench/api/common/extHostSecrets.ts @@ -14,15 +14,19 @@ export class ExtensionSecrets implements vscode.SecretStorage { protected readonly _id: string; protected readonly _secretState: ExtHostSecretState; - private _onDidChange = new Emitter(); - readonly onDidChange: Event = this._onDidChange.event; + private _onDidChange = new Emitter(); + readonly onDidChange: Event = this._onDidChange.event; constructor(extensionDescription: IExtensionDescription, secretState: ExtHostSecretState) { this._id = ExtensionIdentifier.toKey(extensionDescription.identifier); this._secretState = secretState; - this._secretState.onDidChangePassword(_ => this._onDidChange.fire()); + this._secretState.onDidChangePassword(e => { + if (e.extensionId === this._id) { + this._onDidChange.fire({ key: e.key }); + } + }); } get(key: string): Promise { diff --git a/src/vs/workbench/services/credentials/browser/credentialsService.ts b/src/vs/workbench/services/credentials/browser/credentialsService.ts index a0d03ec8417..8dd3d74ee49 100644 --- a/src/vs/workbench/services/credentials/browser/credentialsService.ts +++ b/src/vs/workbench/services/credentials/browser/credentialsService.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ICredentialsService, ICredentialsProvider } from 'vs/workbench/services/credentials/common/credentials'; +import { ICredentialsService, ICredentialsProvider, ICredentialsChangeEvent } from 'vs/workbench/services/credentials/common/credentials'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { Emitter } from 'vs/base/common/event'; @@ -13,7 +13,7 @@ export class BrowserCredentialsService extends Disposable implements ICredential declare readonly _serviceBrand: undefined; - private _onDidChangePassword = this._register(new Emitter()); + private _onDidChangePassword = this._register(new Emitter()); readonly onDidChangePassword = this._onDidChangePassword.event; private credentialsProvider: ICredentialsProvider; @@ -35,13 +35,13 @@ export class BrowserCredentialsService extends Disposable implements ICredential async setPassword(service: string, account: string, password: string): Promise { await this.credentialsProvider.setPassword(service, account, password); - this._onDidChangePassword.fire(); + this._onDidChangePassword.fire({ service, account }); } deletePassword(service: string, account: string): Promise { const didDelete = this.credentialsProvider.deletePassword(service, account); if (didDelete) { - this._onDidChangePassword.fire(); + this._onDidChangePassword.fire({ service, account }); } return didDelete; diff --git a/src/vs/workbench/services/credentials/common/credentials.ts b/src/vs/workbench/services/credentials/common/credentials.ts index b1280cd463a..73b10f0c971 100644 --- a/src/vs/workbench/services/credentials/common/credentials.ts +++ b/src/vs/workbench/services/credentials/common/credentials.ts @@ -16,7 +16,12 @@ export interface ICredentialsProvider { findCredentials(service: string): Promise>; } +export interface ICredentialsChangeEvent { + service: string + account: string; +} + export interface ICredentialsService extends ICredentialsProvider { readonly _serviceBrand: undefined; - readonly onDidChangePassword: Event; + readonly onDidChangePassword: Event; } diff --git a/src/vs/workbench/services/credentials/electron-sandbox/credentialsService.ts b/src/vs/workbench/services/credentials/electron-sandbox/credentialsService.ts index 18ad290ad9e..ba59fbff0c5 100644 --- a/src/vs/workbench/services/credentials/electron-sandbox/credentialsService.ts +++ b/src/vs/workbench/services/credentials/electron-sandbox/credentialsService.ts @@ -3,7 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ICredentialsService } from 'vs/workbench/services/credentials/common/credentials'; +import { ICredentialsChangeEvent, ICredentialsService } from 'vs/workbench/services/credentials/common/credentials'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { Emitter } from 'vs/base/common/event'; @@ -13,7 +13,7 @@ export class KeytarCredentialsService extends Disposable implements ICredentials declare readonly _serviceBrand: undefined; - private _onDidChangePassword: Emitter = this._register(new Emitter()); + private _onDidChangePassword: Emitter = this._register(new Emitter()); readonly onDidChangePassword = this._onDidChangePassword.event; constructor(@INativeHostService private readonly nativeHostService: INativeHostService) { From 61312f3708df5e3ae4f7de338b3c46cf36849d7c Mon Sep 17 00:00:00 2001 From: Jackson Kearl Date: Fri, 15 Jan 2021 18:51:48 -0800 Subject: [PATCH 144/171] Remove instantiation service accessor --- src/vs/workbench/contrib/search/browser/searchView.ts | 7 ------- .../contrib/searchEditor/browser/searchEditorActions.ts | 3 +-- 2 files changed, 1 insertion(+), 9 deletions(-) diff --git a/src/vs/workbench/contrib/search/browser/searchView.ts b/src/vs/workbench/contrib/search/browser/searchView.ts index 4546b6151ab..232a61580e7 100644 --- a/src/vs/workbench/contrib/search/browser/searchView.ts +++ b/src/vs/workbench/contrib/search/browser/searchView.ts @@ -241,13 +241,6 @@ export class SearchView extends ViewPane { this.searchStateKey.set(v); } - /** - * Exposed for openSearchEditor TODO@JacksonKearl - */ - getInstantiationService(): IInstantiationService { - return this.instantiationService; - } - getContainer(): HTMLElement { return this.container; } diff --git a/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts b/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts index 1cb5552de6c..7508c1e938f 100644 --- a/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts +++ b/src/vs/workbench/contrib/searchEditor/browser/searchEditorActions.ts @@ -77,9 +77,9 @@ export const selectAllSearchEditorMatchesCommand = (accessor: ServicesAccessor) export async function openSearchEditor(accessor: ServicesAccessor): Promise { const viewsService = accessor.get(IViewsService); + const instantiationService = accessor.get(IInstantiationService); const searchView = getSearchView(viewsService); if (searchView) { - const instantiationService = searchView.getInstantiationService(); await instantiationService.invokeFunction(openNewSearchEditor, { filesToInclude: searchView.searchIncludePattern.getValue(), filesToExclude: searchView.searchExcludePattern.getValue(), @@ -90,7 +90,6 @@ export async function openSearchEditor(accessor: ServicesAccessor): Promise Date: Sat, 16 Jan 2021 08:46:38 +0100 Subject: [PATCH 145/171] :lipstick: path labels --- src/vs/code/electron-main/app.ts | 2 +- src/vs/code/electron-main/main.ts | 8 ++++---- src/vs/editor/contrib/gotoError/gotoErrorWidget.ts | 11 +++++++---- 3 files changed, 12 insertions(+), 9 deletions(-) diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 4f677dc0981..d66e79001f6 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -835,7 +835,7 @@ export class CodeApplication extends Disposable { mnemonicButtonLabel(localize({ key: 'cancel', comment: ['&& denotes a mnemonic'] }, "&&No")), ], cancelId: 1, - message: localize('confirmOpenMessage', "An external application wants to open '{0}' in {1}. Do you want to open this file or folder?", getPathLabel(uri.fsPath), product.nameShort), + message: localize('confirmOpenMessage', "An external application wants to open '{0}' in {1}. Do you want to open this file or folder?", getPathLabel(uri.fsPath, this.environmentService), product.nameShort), detail: localize('confirmOpenDetail', "If you did not initiate this request, it may represent an attempted attack on your system. Unless you took an explicit action to initiate this request, you should press 'No'"), noLink: true }); diff --git a/src/vs/code/electron-main/main.ts b/src/vs/code/electron-main/main.ts index 6aafb4a847e..f0d8b6d2dd0 100644 --- a/src/vs/code/electron-main/main.ts +++ b/src/vs/code/electron-main/main.ts @@ -31,7 +31,7 @@ import { ConfigurationService } from 'vs/platform/configuration/common/configura import { IRequestService } from 'vs/platform/request/common/request'; import { RequestMainService } from 'vs/platform/request/electron-main/requestMainService'; import { CodeApplication } from 'vs/code/electron-main/app'; -import { mnemonicButtonLabel } from 'vs/base/common/labels'; +import { getPathLabel, mnemonicButtonLabel } from 'vs/base/common/labels'; import { SpdLogService } from 'vs/platform/log/node/spdlogService'; import { BufferLogService } from 'vs/platform/log/common/bufferLog'; import { setUnexpectedErrorHandler } from 'vs/base/common/errors'; @@ -341,11 +341,11 @@ class CodeMain { private handleStartupDataDirError(environmentService: IEnvironmentMainService, error: NodeJS.ErrnoException): void { if (error.code === 'EACCES' || error.code === 'EPERM') { - const directories = coalesce([environmentService.userDataPath, environmentService.extensionsPath, XDG_RUNTIME_DIR]); + const directories = coalesce([environmentService.userDataPath, environmentService.extensionsPath, XDG_RUNTIME_DIR]).map(folder => getPathLabel(folder, environmentService)); this.showStartupWarningDialog( - localize('startupDataDirError', "Unable to write program user data ({0})", toErrorMessage(error)), - localize('startupUserDataAndExtensionsDirErrorDetail', "Please make sure the following directories are writeable:\n\n{0}", directories.join('\n')) + localize('startupDataDirError', "Unable to write program user data."), + localize('startupUserDataAndExtensionsDirErrorDetail', "{0}\n\nPlease make sure the following directories are writeable:\n\n{1}", toErrorMessage(error), directories.join('\n')) ); } } diff --git a/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts b/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts index 10a503f6741..0df06268047 100644 --- a/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts +++ b/src/vs/editor/contrib/gotoError/gotoErrorWidget.ts @@ -16,7 +16,7 @@ import { Color } from 'vs/base/common/color'; import { ScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement'; import { ScrollbarVisibility } from 'vs/base/common/scrollable'; import { ScrollType } from 'vs/editor/common/editorCommon'; -import { getBaseLabel, getPathLabel } from 'vs/base/common/labels'; +import { getBaseLabel } from 'vs/base/common/labels'; import { isNonEmptyArray } from 'vs/base/common/arrays'; import { Event, Emitter } from 'vs/base/common/event'; import { PeekViewWidget, peekViewTitleForeground, peekViewTitleInfoForeground } from 'vs/editor/contrib/peekView/peekView'; @@ -31,6 +31,7 @@ import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { createAndFillInActionBarActions } from 'vs/platform/actions/browser/menuEntryActionViewItem'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; import { splitLines } from 'vs/base/common/strings'; +import { ILabelService } from 'vs/platform/label/common/label'; class MessageWidget { @@ -51,6 +52,7 @@ class MessageWidget { editor: ICodeEditor, onRelatedInformation: (related: IRelatedInformation) => void, private readonly _openerService: IOpenerService, + private readonly _labelService: ILabelService ) { this._editor = editor; @@ -169,7 +171,7 @@ class MessageWidget { let relatedResource = document.createElement('a'); relatedResource.classList.add('filename'); relatedResource.innerText = `${getBaseLabel(related.resource)}(${related.startLineNumber}, ${related.startColumn}): `; - relatedResource.title = getPathLabel(related.resource, undefined); + relatedResource.title = this._labelService.getUriLabel(related.resource); this._relatedDiagnostics.set(relatedResource, related); let relatedMessage = document.createElement('span'); @@ -248,7 +250,8 @@ export class MarkerNavigationWidget extends PeekViewWidget { @IOpenerService private readonly _openerService: IOpenerService, @IMenuService private readonly _menuService: IMenuService, @IInstantiationService instantiationService: IInstantiationService, - @IContextKeyService private readonly _contextKeyService: IContextKeyService + @IContextKeyService private readonly _contextKeyService: IContextKeyService, + @ILabelService private readonly _labelService: ILabelService ) { super(editor, { showArrow: true, showFrame: true, isAccessible: true }, instantiationService); this._severity = MarkerSeverity.Warning; @@ -326,7 +329,7 @@ export class MarkerNavigationWidget extends PeekViewWidget { this._container = document.createElement('div'); container.appendChild(this._container); - this._message = new MessageWidget(this._container, this.editor, related => this._onDidSelectRelatedInformation.fire(related), this._openerService); + this._message = new MessageWidget(this._container, this.editor, related => this._onDidSelectRelatedInformation.fire(related), this._openerService, this._labelService); this._disposables.add(this._message); } From 0c8cf08b44b195ac08c4bcb1c5f4e709235a1d00 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sat, 16 Jan 2021 08:47:32 +0100 Subject: [PATCH 146/171] shared process - drop management service --- src/vs/code/electron-main/app.ts | 8 +----- src/vs/code/electron-main/sharedProcess.ts | 7 ++++- src/vs/platform/native/common/native.ts | 1 + .../electron-main/nativeHostMainService.ts | 6 +++++ .../common/sharedProcessManagement.ts | 17 ------------ .../sharedProcessManagementMainService.ts | 27 ------------------- .../sharedProcess/node/sharedProcess.ts | 5 ---- .../actions/developerActions.ts | 3 +-- .../sharedProcessManagementService.ts | 23 ---------------- .../electron-browser/sharedProcessService.ts | 5 ---- .../electron-browser/workbenchTestServices.ts | 1 + src/vs/workbench/workbench.desktop.main.ts | 1 - 12 files changed, 16 insertions(+), 88 deletions(-) delete mode 100644 src/vs/platform/sharedProcess/common/sharedProcessManagement.ts delete mode 100644 src/vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService.ts delete mode 100644 src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index d66e79001f6..6368fd90f03 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -68,7 +68,6 @@ import { IDiagnosticsService } from 'vs/platform/diagnostics/node/diagnosticsSer import { ExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/common/extensionHostDebugIpc'; import { ElectronExtensionHostDebugBroadcastChannel } from 'vs/platform/debug/electron-main/extensionHostDebugIpc'; import { INativeHostMainService, NativeHostMainService } from 'vs/platform/native/electron-main/nativeHostMainService'; -import { ISharedProcessManagementMainService, SharedProcessManagementMainService } from 'vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService'; import { IDialogMainService, DialogMainService } from 'vs/platform/dialogs/electron-main/dialogMainService'; import { withNullAsUndefined } from 'vs/base/common/types'; import { mnemonicButtonLabel, getPathLabel } from 'vs/base/common/labels'; @@ -509,7 +508,6 @@ export class CodeApplication extends Disposable { services.set(IWindowsMainService, new SyncDescriptor(WindowsMainService, [machineId, this.userEnv])); services.set(IDialogMainService, new SyncDescriptor(DialogMainService)); - services.set(ISharedProcessManagementMainService, new SyncDescriptor(SharedProcessManagementMainService, [sharedProcess])); services.set(ILaunchMainService, new SyncDescriptor(LaunchMainService)); services.set(IDiagnosticsService, createChannelSender(getDelayedChannel(sharedProcessReady.then(client => client.getChannel('diagnostics'))))); @@ -517,7 +515,7 @@ export class CodeApplication extends Disposable { services.set(IEncryptionMainService, new SyncDescriptor(EncryptionMainService, [machineId])); services.set(IKeyboardLayoutMainService, new SyncDescriptor(KeyboardLayoutMainService)); services.set(IDisplayMainService, new SyncDescriptor(DisplayMainService)); - services.set(INativeHostMainService, new SyncDescriptor(NativeHostMainService)); + services.set(INativeHostMainService, new SyncDescriptor(NativeHostMainService, [sharedProcess])); services.set(IWebviewManagerService, new SyncDescriptor(WebviewMainService)); services.set(IWorkspacesService, new SyncDescriptor(WorkspacesService)); services.set(IMenubarMainService, new SyncDescriptor(MenubarMainService)); @@ -621,10 +619,6 @@ export class CodeApplication extends Disposable { electronIpcServer.registerChannel('nativeHost', nativeHostChannel); sharedProcessClient.then(client => client.registerChannel('nativeHost', nativeHostChannel)); - const sharedProcessMainManagementService = accessor.get(ISharedProcessManagementMainService); - const sharedProcessManagementChannel = createChannelReceiver(sharedProcessMainManagementService); - electronIpcServer.registerChannel('sharedProcessManagement', sharedProcessManagementChannel); - const workspacesService = accessor.get(IWorkspacesService); const workspacesChannel = createChannelReceiver(workspacesService); electronIpcServer.registerChannel('workspaces', workspacesChannel); diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 860659ba871..3e6ce1e6dda 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -41,10 +41,15 @@ export class SharedProcess extends Disposable implements ISharedProcess { // Lifecycle this._register(this.lifecycleMainService.onWillShutdown(() => this.onWillShutdown())); - // Shared process connections + // Shared process connections from workbench windows ipcMain.on('vscode:createSharedProcessMessageChannel', async (e, nonce: string) => { this.logService.trace('SharedProcess: on vscode:createSharedProcessMessageChannel'); + // await the shared process to be overall ready + // we do not just wait for IPC ready because the + // workbench window will communicate directly + await this.whenReady(); + const port = await this.connect(); e.sender.postMessage('vscode:createSharedProcessMessageChannelResult', nonce, [port]); diff --git a/src/vs/platform/native/common/native.ts b/src/vs/platform/native/common/native.ts index e51b3ac0e22..2c8414ba871 100644 --- a/src/vs/platform/native/common/native.ts +++ b/src/vs/platform/native/common/native.ts @@ -137,6 +137,7 @@ export interface ICommonNativeHostService { // Development openDevTools(options?: OpenDevToolsOptions): Promise; toggleDevTools(): Promise; + toggleSharedProcessWindow(): Promise; sendInputEvent(event: MouseInputEvent): Promise; // Connectivity diff --git a/src/vs/platform/native/electron-main/nativeHostMainService.ts b/src/vs/platform/native/electron-main/nativeHostMainService.ts index 58318253150..9869c2c8950 100644 --- a/src/vs/platform/native/electron-main/nativeHostMainService.ts +++ b/src/vs/platform/native/electron-main/nativeHostMainService.ts @@ -27,6 +27,7 @@ import { dirname, join } from 'vs/base/common/path'; import product from 'vs/platform/product/common/product'; import { memoize } from 'vs/base/common/decorators'; import { Disposable } from 'vs/base/common/lifecycle'; +import { ISharedProcess } from 'vs/platform/sharedProcess/node/sharedProcess'; export interface INativeHostMainService extends AddFirstParameterToFunctions /* only methods, not events */, number | undefined /* window ID */> { } @@ -42,6 +43,7 @@ export class NativeHostMainService extends Disposable implements INativeHostMain declare readonly _serviceBrand: undefined; constructor( + private sharedProcess: ISharedProcess, @IWindowsMainService private readonly windowsMainService: IWindowsMainService, @IDialogMainService private readonly dialogMainService: IDialogMainService, @ILifecycleMainService private readonly lifecycleMainService: ILifecycleMainService, @@ -628,6 +630,10 @@ export class NativeHostMainService extends Disposable implements INativeHostMain } } + async toggleSharedProcessWindow(): Promise { + return this.sharedProcess.toggle(); + } + //#endregion //#region Registry (windows) diff --git a/src/vs/platform/sharedProcess/common/sharedProcessManagement.ts b/src/vs/platform/sharedProcess/common/sharedProcessManagement.ts deleted file mode 100644 index 4a24d9ca0cb..00000000000 --- a/src/vs/platform/sharedProcess/common/sharedProcessManagement.ts +++ /dev/null @@ -1,17 +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 { createDecorator } from 'vs/platform/instantiation/common/instantiation'; - -export const ISharedProcessManagementService = createDecorator('sharedProcessManagement'); - -export interface ISharedProcessManagementService { - - readonly _serviceBrand: undefined; - - whenReady(): Promise; - - toggleWindow(): Promise; -} diff --git a/src/vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService.ts b/src/vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService.ts deleted file mode 100644 index 19cd18fd66d..00000000000 --- a/src/vs/platform/sharedProcess/electron-main/sharedProcessManagementMainService.ts +++ /dev/null @@ -1,27 +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 { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { ISharedProcess } from 'vs/platform/sharedProcess/node/sharedProcess'; -import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; - -export const ISharedProcessManagementMainService = createDecorator('sharedProcessManagementMainService'); - -export interface ISharedProcessManagementMainService extends ISharedProcessManagementService { } - -export class SharedProcessManagementMainService implements ISharedProcessManagementMainService { - - declare readonly _serviceBrand: undefined; - - constructor(private sharedProcess: ISharedProcess) { } - - whenReady(): Promise { - return this.sharedProcess.whenReady(); - } - - async toggleWindow(): Promise { - return this.sharedProcess.toggle(); - } -} diff --git a/src/vs/platform/sharedProcess/node/sharedProcess.ts b/src/vs/platform/sharedProcess/node/sharedProcess.ts index 94f992c15b5..f68bc60cb5f 100644 --- a/src/vs/platform/sharedProcess/node/sharedProcess.ts +++ b/src/vs/platform/sharedProcess/node/sharedProcess.ts @@ -8,11 +8,6 @@ import { LogLevel } from 'vs/platform/log/common/log'; export interface ISharedProcess { - /** - * Signals the shared process has finished initialization. - */ - whenReady(): Promise; - /** * Toggles the visibility of the otherwise hidden * shared process window. diff --git a/src/vs/workbench/electron-sandbox/actions/developerActions.ts b/src/vs/workbench/electron-sandbox/actions/developerActions.ts index 5b5a5c7b4a8..345e3490a08 100644 --- a/src/vs/workbench/electron-sandbox/actions/developerActions.ts +++ b/src/vs/workbench/electron-sandbox/actions/developerActions.ts @@ -9,7 +9,6 @@ import { IEditorService } from 'vs/workbench/services/editor/common/editorServic import { Action2, MenuId } from 'vs/platform/actions/common/actions'; import { CATEGORIES } from 'vs/workbench/common/actions'; import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; -import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { IsDevelopmentContext } from 'vs/platform/contextkey/common/contextkeys'; @@ -79,6 +78,6 @@ export class ToggleSharedProcessAction extends Action2 { } async run(accessor: ServicesAccessor): Promise { - return accessor.get(ISharedProcessManagementService).toggleWindow(); + return accessor.get(INativeHostService).toggleSharedProcessWindow(); } } diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts deleted file mode 100644 index b4619d53ac3..00000000000 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService.ts +++ /dev/null @@ -1,23 +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 { createChannelSender } from 'vs/base/parts/ipc/common/ipc'; -import { IMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; -import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; - -// @ts-ignore: interface is implemented via proxy -export class SharedProcessManagementService implements ISharedProcessManagementService { - - declare readonly _serviceBrand: undefined; - - constructor( - @IMainProcessService mainProcessService: IMainProcessService - ) { - return createChannelSender(mainProcessService.getChannel('sharedProcessManagement')); - } -} - -registerSingleton(ISharedProcessManagementService, SharedProcessManagementService, true); diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts index a1962759d7f..924ca70d083 100644 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts @@ -15,7 +15,6 @@ import { generateUuid } from 'vs/base/common/uuid'; import { ILogService } from 'vs/platform/log/common/log'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { Disposable } from 'vs/base/common/lifecycle'; -import { ISharedProcessManagementService } from 'vs/platform/sharedProcess/common/sharedProcessManagement'; export class SharedProcessService extends Disposable implements ISharedProcessService { @@ -24,7 +23,6 @@ export class SharedProcessService extends Disposable implements ISharedProcessSe private readonly withSharedProcessConnection: Promise; constructor( - @ISharedProcessManagementService private readonly sharedProcessManagementService: ISharedProcessManagementService, @INativeHostService private readonly nativeHostService: INativeHostService, @ILogService private readonly logService: ILogService, @ILifecycleService private readonly lifecycleService: ILifecycleService @@ -45,9 +43,6 @@ export class SharedProcessService extends Disposable implements ISharedProcessSe private async connect(): Promise { this.logService.trace('Workbench->SharedProcess#connect'); - // await the shared process to be ready - await this.sharedProcessManagementService.whenReady(); - // Ask to create message channel inside the window // and send over a UUID to correlate the response const nonce = generateUuid(); diff --git a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts index 57946d6380b..ea7c53c0512 100644 --- a/src/vs/workbench/test/electron-browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/electron-browser/workbenchTestServices.ts @@ -222,6 +222,7 @@ export class TestNativeHostService implements INativeHostService { async exit(code: number): Promise { } async openDevTools(options?: Electron.OpenDevToolsOptions | undefined): Promise { } async toggleDevTools(): Promise { } + async toggleSharedProcessWindow(): Promise { } async resolveProxy(url: string): Promise { return undefined; } async readClipboardText(type?: 'selection' | 'clipboard' | undefined): Promise { return ''; } async writeClipboardText(text: string, type?: 'selection' | 'clipboard' | undefined): Promise { } diff --git a/src/vs/workbench/workbench.desktop.main.ts b/src/vs/workbench/workbench.desktop.main.ts index dfa931ce303..2daa6c23831 100644 --- a/src/vs/workbench/workbench.desktop.main.ts +++ b/src/vs/workbench/workbench.desktop.main.ts @@ -71,7 +71,6 @@ import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncService' import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService'; import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService'; import 'vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService'; -import 'vs/workbench/services/sharedProcess/electron-browser/sharedProcessManagementService'; import 'vs/workbench/services/sharedProcess/electron-browser/sharedProcessService'; import 'vs/workbench/services/localizations/electron-browser/localizationsService'; import 'vs/workbench/services/diagnostics/electron-browser/diagnosticsService'; From 253e9e32261ad4f502d04ab5ee91d1b7de8fdee7 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sat, 16 Jan 2021 09:03:57 +0100 Subject: [PATCH 147/171] shared process - consolidate services --- src/vs/code/electron-main/sharedProcess.ts | 36 ++++------ .../electron-browser/sharedProcessService.ts | 53 +++++++++++++- .../sharedProcess/node/sharedProcess.ts | 2 +- .../electron-browser/sharedProcessService.ts | 71 ------------------- src/vs/workbench/workbench.desktop.main.ts | 3 +- 5 files changed, 69 insertions(+), 96 deletions(-) delete mode 100644 src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts diff --git a/src/vs/code/electron-main/sharedProcess.ts b/src/vs/code/electron-main/sharedProcess.ts index 3e6ce1e6dda..989da879644 100644 --- a/src/vs/code/electron-main/sharedProcess.ts +++ b/src/vs/code/electron-main/sharedProcess.ts @@ -212,29 +212,21 @@ export class SharedProcess extends Disposable implements ISharedProcess { return connectMessagePort(window); } - toggle(): void { - if (!this.window || this.window.isVisible()) { - this.hide(); + async toggle(): Promise { + + // wait for window to be created + await this.whenIpcReady; + + if (!this.window) { + return; // possibly disposed already + } + + if (this.window.isVisible()) { + this.window.webContents.closeDevTools(); + this.window.hide(); } else { - this.show(); + this.window.show(); + this.window.webContents.openDevTools(); } } - - show(): void { - if (!this.window) { - return; // possibly too early before created - } - - this.window.show(); - this.window.webContents.openDevTools(); - } - - hide(): void { - if (!this.window) { - return; // possibly too early before created - } - - this.window.webContents.closeDevTools(); - this.window.hide(); - } } diff --git a/src/vs/platform/ipc/electron-browser/sharedProcessService.ts b/src/vs/platform/ipc/electron-browser/sharedProcessService.ts index 3cfe94145df..60299f96efb 100644 --- a/src/vs/platform/ipc/electron-browser/sharedProcessService.ts +++ b/src/vs/platform/ipc/electron-browser/sharedProcessService.ts @@ -4,7 +4,15 @@ *--------------------------------------------------------------------------------------------*/ import { createDecorator } from 'vs/platform/instantiation/common/instantiation'; -import { IChannel, IServerChannel } from 'vs/base/parts/ipc/common/ipc'; +import { Event } from 'vs/base/common/event'; +import { IpcRendererEvent } from 'vs/base/parts/sandbox/electron-sandbox/electronTypes'; +import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; +import { Client as MessagePortClient } from 'vs/base/parts/ipc/common/ipc.mp'; +import { IChannel, IServerChannel, getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; +import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; +import { generateUuid } from 'vs/base/common/uuid'; +import { ILogService } from 'vs/platform/log/common/log'; +import { Disposable } from 'vs/base/common/lifecycle'; export const ISharedProcessService = createDecorator('sharedProcessService'); @@ -15,3 +23,46 @@ export interface ISharedProcessService { getChannel(channelName: string): IChannel; registerChannel(channelName: string, channel: IServerChannel): void; } + +export class SharedProcessService extends Disposable implements ISharedProcessService { + + declare readonly _serviceBrand: undefined; + + private readonly withSharedProcessConnection: Promise; + + constructor( + @INativeHostService private readonly nativeHostService: INativeHostService, + @ILogService private readonly logService: ILogService + ) { + super(); + + this.withSharedProcessConnection = this.connect(); + } + + private async connect(): Promise { + this.logService.trace('Renderer->SharedProcess#connect'); + + // Ask to create message channel inside the window + // and send over a UUID to correlate the response + const nonce = generateUuid(); + ipcRenderer.send('vscode:createSharedProcessMessageChannel', nonce); + + // Wait until the main side has returned the `MessagePort` + // We need to filter by the `nonce` to ensure we listen + // to the right response. + const onMessageChannelResult = Event.fromNodeEventEmitter<{ nonce: string, port: MessagePort }>(ipcRenderer, 'vscode:createSharedProcessMessageChannelResult', (e: IpcRendererEvent, nonce: string) => ({ nonce, port: e.ports[0] })); + const { port } = await Event.toPromise(Event.once(Event.filter(onMessageChannelResult, e => e.nonce === nonce))); + + this.logService.trace('Renderer->SharedProcess#connect: connection established'); + + return this._register(new MessagePortClient(port, `window:${this.nativeHostService.windowId}`)); + } + + getChannel(channelName: string): IChannel { + return getDelayedChannel(this.withSharedProcessConnection.then(connection => connection.getChannel(channelName))); + } + + registerChannel(channelName: string, channel: IServerChannel): void { + this.withSharedProcessConnection.then(connection => connection.registerChannel(channelName, channel)); + } +} diff --git a/src/vs/platform/sharedProcess/node/sharedProcess.ts b/src/vs/platform/sharedProcess/node/sharedProcess.ts index f68bc60cb5f..8a0ea62d76b 100644 --- a/src/vs/platform/sharedProcess/node/sharedProcess.ts +++ b/src/vs/platform/sharedProcess/node/sharedProcess.ts @@ -12,7 +12,7 @@ export interface ISharedProcess { * Toggles the visibility of the otherwise hidden * shared process window. */ - toggle(): void; + toggle(): Promise; } export interface ISharedProcessConfiguration { diff --git a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts b/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts deleted file mode 100644 index 924ca70d083..00000000000 --- a/src/vs/workbench/services/sharedProcess/electron-browser/sharedProcessService.ts +++ /dev/null @@ -1,71 +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 { Event } from 'vs/base/common/event'; -import { IpcRendererEvent } from 'vs/base/parts/sandbox/electron-sandbox/electronTypes'; -import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; -import { Client as MessagePortClient } from 'vs/base/parts/ipc/common/ipc.mp'; -import { IChannel, IServerChannel, getDelayedChannel } from 'vs/base/parts/ipc/common/ipc'; -import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; -import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; -import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; -import { generateUuid } from 'vs/base/common/uuid'; -import { ILogService } from 'vs/platform/log/common/log'; -import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; -import { Disposable } from 'vs/base/common/lifecycle'; - -export class SharedProcessService extends Disposable implements ISharedProcessService { - - declare readonly _serviceBrand: undefined; - - private readonly withSharedProcessConnection: Promise; - - constructor( - @INativeHostService private readonly nativeHostService: INativeHostService, - @ILogService private readonly logService: ILogService, - @ILifecycleService private readonly lifecycleService: ILifecycleService - ) { - super(); - - this.withSharedProcessConnection = this.connect(); - - this.registerListeners(); - } - - private registerListeners(): void { - - // Lifecycle - this.lifecycleService.onWillShutdown(() => this.dispose()); - } - - private async connect(): Promise { - this.logService.trace('Workbench->SharedProcess#connect'); - - // Ask to create message channel inside the window - // and send over a UUID to correlate the response - const nonce = generateUuid(); - ipcRenderer.send('vscode:createSharedProcessMessageChannel', nonce); - - // Wait until the main side has returned the `MessagePort` - // We need to filter by the `nonce` to ensure we listen - // to the right response. - const onMessageChannelResult = Event.fromNodeEventEmitter<{ nonce: string, port: MessagePort }>(ipcRenderer, 'vscode:createSharedProcessMessageChannelResult', (e: IpcRendererEvent, nonce: string) => ({ nonce, port: e.ports[0] })); - const { port } = await Event.toPromise(Event.once(Event.filter(onMessageChannelResult, e => e.nonce === nonce))); - - this.logService.trace('Workbench->SharedProcess#connect: connection established'); - - return this._register(new MessagePortClient(port, `window:${this.nativeHostService.windowId}`)); - } - - getChannel(channelName: string): IChannel { - return getDelayedChannel(this.withSharedProcessConnection.then(connection => connection.getChannel(channelName))); - } - - registerChannel(channelName: string, channel: IServerChannel): void { - this.withSharedProcessConnection.then(connection => connection.registerChannel(channelName, channel)); - } -} - -registerSingleton(ISharedProcessService, SharedProcessService, true); diff --git a/src/vs/workbench/workbench.desktop.main.ts b/src/vs/workbench/workbench.desktop.main.ts index 2daa6c23831..abb042ce897 100644 --- a/src/vs/workbench/workbench.desktop.main.ts +++ b/src/vs/workbench/workbench.desktop.main.ts @@ -71,7 +71,6 @@ import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncService' import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncAccountService'; import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncStoreManagementService'; import 'vs/workbench/services/userDataSync/electron-browser/userDataAutoSyncService'; -import 'vs/workbench/services/sharedProcess/electron-browser/sharedProcessService'; import 'vs/workbench/services/localizations/electron-browser/localizationsService'; import 'vs/workbench/services/diagnostics/electron-browser/diagnosticsService'; @@ -90,8 +89,10 @@ import 'vs/workbench/services/diagnostics/electron-browser/diagnosticsService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { ITunnelService } from 'vs/platform/remote/common/tunnel'; import { TunnelService } from 'vs/workbench/services/remote/electron-browser/tunnelServiceImpl'; +import { ISharedProcessService, SharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; registerSingleton(ITunnelService, TunnelService); +registerSingleton(ISharedProcessService, SharedProcessService, true); //#endregion From eaa959d34b863dec932077d94daece22504a396b Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Sat, 16 Jan 2021 11:06:27 +0100 Subject: [PATCH 148/171] fix #114273 --- .../backupRestorer.test.ts | 64 +------- .../backup/test/browser/backupTracker.test.ts | 155 ++++++++++++++++++ .../electron-browser/backupTracker.test.ts | 90 +--------- .../test/browser/workbenchTestServices.ts | 81 +++++++-- 4 files changed, 234 insertions(+), 156 deletions(-) rename src/vs/workbench/contrib/backup/test/{electron-browser => browser}/backupRestorer.test.ts (63%) create mode 100644 src/vs/workbench/contrib/backup/test/browser/backupTracker.test.ts diff --git a/src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts b/src/vs/workbench/contrib/backup/test/browser/backupRestorer.test.ts similarity index 63% rename from src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts rename to src/vs/workbench/contrib/backup/test/browser/backupRestorer.test.ts index 03aa09fcbd0..7fc055f3246 100644 --- a/src/vs/workbench/contrib/backup/test/electron-browser/backupRestorer.test.ts +++ b/src/vs/workbench/contrib/backup/test/browser/backupRestorer.test.ts @@ -4,35 +4,20 @@ *--------------------------------------------------------------------------------------------*/ import * as assert from 'assert'; -import * as platform from 'vs/base/common/platform'; -import * as os from 'os'; -import * as path from 'vs/base/common/path'; -import * as pfs from 'vs/base/node/pfs'; +import { isWindows } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri'; import { createTextBufferFactory } from 'vs/editor/common/model/textModel'; -import { flakySuite, getRandomTestPath } from 'vs/base/test/node/testUtils'; import { DefaultEndOfLine } from 'vs/editor/common/model'; -import { hashPath } from 'vs/workbench/services/backup/electron-browser/backupFileService'; -import { NativeBackupTracker } from 'vs/workbench/contrib/backup/electron-sandbox/backupTracker'; -import { workbenchInstantiationService } from 'vs/workbench/test/electron-browser/workbenchTestServices'; -import { TextFileEditorModelManager } from 'vs/workbench/services/textfile/common/textFileEditorModelManager'; import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; import { EditorPart } from 'vs/workbench/browser/parts/editor/editorPart'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { EditorService } from 'vs/workbench/services/editor/browser/editorService'; -import { Registry } from 'vs/platform/registry/common/platform'; -import { EditorInput } from 'vs/workbench/common/editor'; -import { FileEditorInput } from 'vs/workbench/contrib/files/common/editors/fileEditorInput'; -import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; -import { IEditorRegistry, EditorDescriptor, Extensions as EditorExtensions } from 'vs/workbench/browser/editor'; -import { TextFileEditor } from 'vs/workbench/contrib/files/browser/editors/textFileEditor'; import { IBackupFileService } from 'vs/workbench/services/backup/common/backup'; -import { NodeTestBackupFileService } from 'vs/workbench/services/backup/test/electron-browser/backupFileService.test'; -import { dispose, IDisposable } from 'vs/base/common/lifecycle'; import { Schemas } from 'vs/base/common/network'; import { isEqual } from 'vs/base/common/resources'; -import { TestServiceAccessor } from 'vs/workbench/test/browser/workbenchTestServices'; +import { InMemoryTestBackupFileService, TestServiceAccessor, workbenchInstantiationService } from 'vs/workbench/test/browser/workbenchTestServices'; import { BackupRestorer } from 'vs/workbench/contrib/backup/common/backupRestorer'; +import { BrowserBackupTracker } from 'vs/workbench/contrib/backup/browser/backupTracker'; class TestBackupRestorer extends BackupRestorer { async doRestoreBackups(): Promise { @@ -40,49 +25,16 @@ class TestBackupRestorer extends BackupRestorer { } } -flakySuite('BackupRestorer', () => { +suite('BackupRestorer', () => { let accessor: TestServiceAccessor; - let disposables: IDisposable[] = []; - const userdataDir = getRandomTestPath(os.tmpdir(), 'vsctests', 'backuprestorer'); - const backupHome = path.join(userdataDir, 'Backups'); - const workspacesJsonPath = path.join(backupHome, 'workspaces.json'); - - const workspaceResource = URI.file(platform.isWindows ? 'c:\\workspace' : '/workspace'); - const workspaceBackupPath = path.join(backupHome, hashPath(workspaceResource)); - const fooFile = URI.file(platform.isWindows ? 'c:\\Foo' : '/Foo'); - const barFile = URI.file(platform.isWindows ? 'c:\\Bar' : '/Bar'); + const fooFile = URI.file(isWindows ? 'c:\\Foo' : '/Foo'); + const barFile = URI.file(isWindows ? 'c:\\Bar' : '/Bar'); const untitledFile1 = URI.from({ scheme: Schemas.untitled, path: 'Untitled-1' }); const untitledFile2 = URI.from({ scheme: Schemas.untitled, path: 'Untitled-2' }); - setup(async () => { - disposables.push(Registry.as(EditorExtensions.Editors).registerEditor( - EditorDescriptor.create( - TextFileEditor, - TextFileEditor.ID, - 'Text File Editor' - ), - [new SyncDescriptor(FileEditorInput)] - )); - - // Delete any existing backups completely and then re-create it. - await pfs.rimraf(backupHome); - await pfs.mkdirp(backupHome); - - return pfs.writeFile(workspacesJsonPath, ''); - }); - - teardown(() => { - dispose(disposables); - disposables = []; - - (accessor.textFileService.files).dispose(); - - return pfs.rimraf(backupHome); - }); - test('Restore backups', async function () { - const backupFileService = new NodeTestBackupFileService(workspaceBackupPath); + const backupFileService = new InMemoryTestBackupFileService(); const instantiationService = workbenchInstantiationService(); instantiationService.stub(IBackupFileService, backupFileService); @@ -99,7 +51,7 @@ flakySuite('BackupRestorer', () => { await part.whenRestored; - const tracker = instantiationService.createInstance(NativeBackupTracker); + const tracker = instantiationService.createInstance(BrowserBackupTracker); const restorer = instantiationService.createInstance(TestBackupRestorer); // Backup 2 normal files and 2 untitled file diff --git a/src/vs/workbench/contrib/backup/test/browser/backupTracker.test.ts b/src/vs/workbench/contrib/backup/test/browser/backupTracker.test.ts new file mode 100644 index 00000000000..0d6de15e3a2 --- /dev/null +++ b/src/vs/workbench/contrib/backup/test/browser/backupTracker.test.ts @@ -0,0 +1,155 @@ +/*--------------------------------------------------------------------------------------------- + * Copyright (c) Microsoft Corporation. All rights reserved. + * Licensed under the MIT License. See License.txt in the project root for license information. + *--------------------------------------------------------------------------------------------*/ + +import * as assert from 'assert'; +import { URI } from 'vs/base/common/uri'; +import { IEditorService } from 'vs/workbench/services/editor/common/editorService'; +import { EditorPart } from 'vs/workbench/browser/parts/editor/editorPart'; +import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; +import { EditorService } from 'vs/workbench/services/editor/browser/editorService'; +import { IUntitledTextResourceEditorInput } from 'vs/workbench/common/editor'; +import { IBackupFileService } from 'vs/workbench/services/backup/common/backup'; +import { toResource } from 'vs/base/test/common/utils'; +import { IFilesConfigurationService } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; +import { IWorkingCopyBackup, IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; +import { ILogService } from 'vs/platform/log/common/log'; +import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; +import { BackupTracker } from 'vs/workbench/contrib/backup/common/backupTracker'; +import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; +import { UntitledTextEditorInput } from 'vs/workbench/services/untitled/common/untitledTextEditorInput'; +import { InMemoryTestBackupFileService, TestServiceAccessor, workbenchInstantiationService } from 'vs/workbench/test/browser/workbenchTestServices'; +import { TestWorkingCopy } from 'vs/workbench/test/common/workbenchTestServices'; +import { CancellationToken } from 'vs/base/common/cancellation'; +import { timeout } from 'vs/base/common/async'; +import { BrowserBackupTracker } from 'vs/workbench/contrib/backup/browser/backupTracker'; + +class TestBackupTracker extends BrowserBackupTracker { + + constructor( + @IBackupFileService backupFileService: IBackupFileService, + @IFilesConfigurationService filesConfigurationService: IFilesConfigurationService, + @IWorkingCopyService workingCopyService: IWorkingCopyService, + @ILifecycleService lifecycleService: ILifecycleService, + @ILogService logService: ILogService, + ) { + super(backupFileService, filesConfigurationService, workingCopyService, lifecycleService, logService); + } + + protected getBackupScheduleDelay(): number { + return 10; // Reduce timeout for tests + } +} + +suite('BackupTracker (browser)', function () { + let accessor: TestServiceAccessor; + + async function createTracker(): Promise<{ accessor: TestServiceAccessor, part: EditorPart, tracker: BackupTracker, backupFileService: InMemoryTestBackupFileService, instantiationService: IInstantiationService, cleanup: () => void }> { + const backupFileService = new InMemoryTestBackupFileService(); + const instantiationService = workbenchInstantiationService(); + instantiationService.stub(IBackupFileService, backupFileService); + + const part = instantiationService.createInstance(EditorPart); + part.create(document.createElement('div')); + part.layout(400, 300); + + instantiationService.stub(IEditorGroupsService, part); + + const editorService: EditorService = instantiationService.createInstance(EditorService); + instantiationService.stub(IEditorService, editorService); + + accessor = instantiationService.createInstance(TestServiceAccessor); + + await part.whenRestored; + + const tracker = instantiationService.createInstance(TestBackupTracker); + + const cleanup = () => { + part.dispose(); + tracker.dispose(); + }; + + return { accessor, part, tracker, backupFileService, instantiationService, cleanup }; + } + + async function untitledBackupTest(untitled: IUntitledTextResourceEditorInput = {}): Promise { + const { accessor, cleanup, backupFileService } = await createTracker(); + + const untitledEditor = (await accessor.editorService.openEditor(untitled))?.input as UntitledTextEditorInput; + + const untitledModel = await untitledEditor.resolve(); + + if (!untitled?.contents) { + untitledModel.textEditorModel.setValue('Super Good'); + } + + await backupFileService.joinBackupResource(); + + assert.equal(backupFileService.hasBackupSync(untitledEditor.resource), true); + + untitledModel.dispose(); + + await backupFileService.joinDiscardBackup(); + + assert.equal(backupFileService.hasBackupSync(untitledEditor.resource), false); + + cleanup(); + } + + test('Track backups (untitled)', function () { + return untitledBackupTest(); + }); + + test('Track backups (untitled with initial contents)', function () { + return untitledBackupTest({ contents: 'Foo Bar' }); + }); + + test('Track backups (custom)', async function () { + const { accessor, cleanup, backupFileService } = await createTracker(); + + class TestBackupWorkingCopy extends TestWorkingCopy { + + backupDelay = 0; + + constructor(resource: URI) { + super(resource); + + accessor.workingCopyService.registerWorkingCopy(this); + } + + async backup(token: CancellationToken): Promise { + await timeout(this.backupDelay); + + return {}; + } + } + + const resource = toResource.call(this, '/path/custom.txt'); + const customWorkingCopy = new TestBackupWorkingCopy(resource); + + // Normal + customWorkingCopy.setDirty(true); + await backupFileService.joinBackupResource(); + assert.equal(backupFileService.hasBackupSync(resource), true); + + customWorkingCopy.setDirty(false); + customWorkingCopy.setDirty(true); + await backupFileService.joinBackupResource(); + assert.equal(backupFileService.hasBackupSync(resource), true); + + customWorkingCopy.setDirty(false); + await backupFileService.joinDiscardBackup(); + assert.equal(backupFileService.hasBackupSync(resource), false); + + // Cancellation + customWorkingCopy.setDirty(true); + await timeout(0); + customWorkingCopy.setDirty(false); + await backupFileService.joinDiscardBackup(); + assert.equal(backupFileService.hasBackupSync(resource), false); + + customWorkingCopy.dispose(); + await cleanup(); + }); +}); diff --git a/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts b/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts index 90db67a7a15..fdc0b1d1b15 100644 --- a/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts +++ b/src/vs/workbench/contrib/backup/test/electron-browser/backupTracker.test.ts @@ -18,7 +18,7 @@ import { EditorPart } from 'vs/workbench/browser/parts/editor/editorPart'; import { IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { EditorService } from 'vs/workbench/services/editor/browser/editorService'; import { Registry } from 'vs/platform/registry/common/platform'; -import { EditorInput, IUntitledTextResourceEditorInput } from 'vs/workbench/common/editor'; +import { EditorInput } from 'vs/workbench/common/editor'; import { FileEditorInput } from 'vs/workbench/contrib/files/common/editors/fileEditorInput'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { IEditorRegistry, EditorDescriptor, Extensions as EditorExtensions } from 'vs/workbench/browser/editor'; @@ -28,7 +28,7 @@ import { NodeTestBackupFileService } from 'vs/workbench/services/backup/test/ele import { dispose, IDisposable } from 'vs/base/common/lifecycle'; import { toResource } from 'vs/base/test/common/utils'; import { IFilesConfigurationService } from 'vs/workbench/services/filesConfiguration/common/filesConfigurationService'; -import { IWorkingCopyBackup, IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; +import { IWorkingCopyService } from 'vs/workbench/services/workingCopy/common/workingCopyService'; import { ILogService } from 'vs/platform/log/common/log'; import { HotExitConfiguration } from 'vs/platform/files/common/files'; import { ShutdownReason, ILifecycleService, BeforeShutdownEvent } from 'vs/workbench/services/lifecycle/common/lifecycle'; @@ -38,16 +38,12 @@ import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { BackupTracker } from 'vs/workbench/contrib/backup/common/backupTracker'; import { workbenchInstantiationService, TestServiceAccessor } from 'vs/workbench/test/electron-browser/workbenchTestServices'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; -import { UntitledTextEditorInput } from 'vs/workbench/services/untitled/common/untitledTextEditorInput'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; import { TestFilesConfigurationService } from 'vs/workbench/test/browser/workbenchTestServices'; import { MockContextKeyService } from 'vs/platform/keybinding/test/common/mockKeybindingService'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { IEnvironmentService } from 'vs/platform/environment/common/environment'; -import { TestWorkingCopy } from 'vs/workbench/test/common/workbenchTestServices'; -import { CancellationToken } from 'vs/base/common/cancellation'; -import { timeout } from 'vs/base/common/async'; import { Workspace } from 'vs/platform/workspace/test/common/testWorkspace'; import { IProgressService } from 'vs/platform/progress/common/progress'; @@ -92,7 +88,7 @@ class BeforeShutdownEventImpl implements BeforeShutdownEvent { } } -flakySuite('BackupTracker', function () { +flakySuite('BackupTracker (native)', function () { let backupHome: string; let workspaceBackupPath: string; @@ -176,38 +172,6 @@ flakySuite('BackupTracker', function () { return { accessor, part, tracker, instantiationService, cleanup }; } - async function untitledBackupTest(untitled: IUntitledTextResourceEditorInput = {}): Promise { - const { accessor, cleanup } = await createTracker(); - - const untitledEditor = (await accessor.editorService.openEditor(untitled))?.input as UntitledTextEditorInput; - - const untitledModel = await untitledEditor.resolve(); - - if (!untitled?.contents) { - untitledModel.textEditorModel.setValue('Super Good'); - } - - await accessor.backupFileService.joinBackupResource(); - - assert.equal(accessor.backupFileService.hasBackupSync(untitledEditor.resource), true); - - untitledModel.dispose(); - - await accessor.backupFileService.joinDiscardBackup(); - - assert.equal(accessor.backupFileService.hasBackupSync(untitledEditor.resource), false); - - await cleanup(); - } - - test('Track backups (untitled)', function () { - return untitledBackupTest(); - }); - - test('Track backups (untitled with initial contents)', function () { - return untitledBackupTest({ contents: 'Foo Bar' }); - }); - test('Track backups (file)', async function () { const { accessor, cleanup } = await createTracker(); @@ -230,54 +194,6 @@ flakySuite('BackupTracker', function () { await cleanup(); }); - test('Track backups (custom)', async function () { - const { accessor, cleanup } = await createTracker(); - - class TestBackupWorkingCopy extends TestWorkingCopy { - - backupDelay = 0; - - constructor(resource: URI) { - super(resource); - - accessor.workingCopyService.registerWorkingCopy(this); - } - - async backup(token: CancellationToken): Promise { - await timeout(this.backupDelay); - - return {}; - } - } - - const resource = toResource.call(this, '/path/custom.txt'); - const customWorkingCopy = new TestBackupWorkingCopy(resource); - - // Normal - customWorkingCopy.setDirty(true); - await accessor.backupFileService.joinBackupResource(); - assert.equal(accessor.backupFileService.hasBackupSync(resource), true); - - customWorkingCopy.setDirty(false); - customWorkingCopy.setDirty(true); - await accessor.backupFileService.joinBackupResource(); - assert.equal(accessor.backupFileService.hasBackupSync(resource), true); - - customWorkingCopy.setDirty(false); - await accessor.backupFileService.joinDiscardBackup(); - assert.equal(accessor.backupFileService.hasBackupSync(resource), false); - - // Cancellation - customWorkingCopy.setDirty(true); - await timeout(0); - customWorkingCopy.setDirty(false); - await accessor.backupFileService.joinDiscardBackup(); - assert.equal(accessor.backupFileService.hasBackupSync(resource), false); - - customWorkingCopy.dispose(); - await cleanup(); - }); - test('onWillShutdown - no veto if no dirty files', async function () { const { accessor, cleanup } = await createTracker(); diff --git a/src/vs/workbench/test/browser/workbenchTestServices.ts b/src/vs/workbench/test/browser/workbenchTestServices.ts index c4309a14e3b..ce503be42a4 100644 --- a/src/vs/workbench/test/browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/browser/workbenchTestServices.ts @@ -13,7 +13,7 @@ import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtil import { IEditorInputWithOptions, IEditorIdentifier, IUntitledTextResourceEditorInput, IResourceDiffEditorInput, IEditorInput, IEditorPane, IEditorCloseEvent, IEditorPartOptions, IRevertOptions, GroupIdentifier, EditorInput, EditorOptions, EditorsOrder, IFileEditorInput, IEditorInputFactoryRegistry, IEditorInputFactory, Extensions as EditorExtensions, ISaveOptions, IMoveResult, ITextEditorPane, ITextDiffEditorPane, IVisibleEditorPane, IEditorOpenContext } from 'vs/workbench/common/editor'; import { IEditorOpeningEvent, EditorServiceImpl, IEditorGroupView, IEditorGroupsAccessor, IEditorGroupTitleDimensions } from 'vs/workbench/browser/parts/editor/editor'; import { Event, Emitter } from 'vs/base/common/event'; -import { IBackupFileService, IResolvedBackup } from 'vs/workbench/services/backup/common/backup'; +import { IBackupFileService } from 'vs/workbench/services/backup/common/backup'; import { IConfigurationService, ConfigurationTarget } from 'vs/platform/configuration/common/configuration'; import { IWorkbenchLayoutService, Parts, Position as PartPosition } from 'vs/workbench/services/layout/browser/layoutService'; import { TextModelResolverService } from 'vs/workbench/services/textmodelResolver/common/textModelResolverService'; @@ -114,6 +114,10 @@ import { EncodingOracle, IEncodingOverride } from 'vs/workbench/services/textfil import { UTF16le, UTF16be, UTF8_with_bom } from 'vs/workbench/services/textfile/common/encoding'; import { ColorScheme } from 'vs/platform/theme/common/theme'; import { Iterable } from 'vs/base/common/iterator'; +import { InMemoryBackupFileService } from 'vs/workbench/services/backup/common/backupFileService'; +import { hash } from 'vs/base/common/hash'; +import { BrowserBackupFileService } from 'vs/workbench/services/backup/browser/backupFileService'; +import { FileService } from 'vs/platform/files/common/fileService'; export function createFileEditorInput(instantiationService: IInstantiationService, resource: URI): FileEditorInput { return instantiationService.createInstance(FileEditorInput, resource, undefined, undefined, undefined, undefined, undefined); @@ -893,19 +897,12 @@ export class TestFileService implements IFileService { async canDelete(resource: URI, options?: { useTrash?: boolean | undefined; recursive?: boolean | undefined; } | undefined): Promise { return true; } } -export class TestBackupFileService implements IBackupFileService { - declare readonly _serviceBrand: undefined; +export class TestBackupFileService extends InMemoryBackupFileService { + + constructor() { + super(resource => String(hash(resource.path))); + } - hasBackups(): Promise { return Promise.resolve(false); } - hasBackup(_resource: URI): Promise { return Promise.resolve(false); } - hasBackupSync(resource: URI, versionId?: number): boolean { return false; } - async registerResourceForBackup(_resource: URI): Promise { } - async deregisterResourceForBackup(_resource: URI): Promise { } - async backup(_resource: URI, _content?: ITextSnapshot, versionId?: number, meta?: T): Promise { } - getBackups(): Promise { return Promise.resolve([]); } - resolve(_backup: URI): Promise | undefined> { return Promise.resolve(undefined); } - async discardBackup(_resource: URI): Promise { } - async discardBackups(): Promise { } parseBackupContent(textBufferFactory: ITextBufferFactory): string { const textBuffer = textBufferFactory.create(DefaultEndOfLine.LF).textBuffer; const lineCount = textBuffer.getLineCount(); @@ -914,6 +911,64 @@ export class TestBackupFileService implements IBackupFileService { } } +export class InMemoryTestBackupFileService extends BrowserBackupFileService { + + readonly fileService: IFileService; + + private backupResourceJoiners: Function[]; + private discardBackupJoiners: Function[]; + + discardedBackups: URI[]; + + constructor() { + const environmentService = TestEnvironmentService; + const logService = new NullLogService(); + const fileService = new FileService(logService); + fileService.registerProvider(Schemas.file, new InMemoryFileSystemProvider()); + fileService.registerProvider(Schemas.userData, new InMemoryFileSystemProvider()); + + super(new TestContextService(TestWorkspace), environmentService, fileService, logService); + + this.fileService = fileService; + this.backupResourceJoiners = []; + this.discardBackupJoiners = []; + this.discardedBackups = []; + } + + joinBackupResource(): Promise { + return new Promise(resolve => this.backupResourceJoiners.push(resolve)); + } + + joinDiscardBackup(): Promise { + return new Promise(resolve => this.discardBackupJoiners.push(resolve)); + } + + async backup(resource: URI, content?: ITextSnapshot, versionId?: number, meta?: any, token?: CancellationToken): Promise { + await super.backup(resource, content, versionId, meta, token); + + while (this.backupResourceJoiners.length) { + this.backupResourceJoiners.pop()!(); + } + } + + async discardBackup(resource: URI): Promise { + await super.discardBackup(resource); + this.discardedBackups.push(resource); + + while (this.discardBackupJoiners.length) { + this.discardBackupJoiners.pop()!(); + } + } + + async getBackupContents(resource: URI): Promise { + const backupResource = this.toBackupResource(resource); + + const fileContents = await this.fileService.readFile(backupResource); + + return fileContents.value.toString(); + } +} + export class TestLifecycleService implements ILifecycleService { declare readonly _serviceBrand: undefined; From ec5d1c2ab9354ea2933b3da40f18973a4a161587 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 18 Jan 2021 08:36:51 +0100 Subject: [PATCH 149/171] debt - push more window related things to window helper class --- src/vs/workbench/browser/web.main.ts | 60 +---------------- src/vs/workbench/browser/window.ts | 65 ++++++++++++++++++- src/vs/workbench/browser/workbench.ts | 15 +++-- .../electron-browser/desktop.main.ts | 23 +------ .../actions/developerActions.ts | 16 +++++ .../electron-sandbox/actions/windowActions.ts | 21 ------ .../electron-sandbox/desktop.contribution.ts | 7 +- .../electron-sandbox/desktop.main.ts | 23 +------ src/vs/workbench/electron-sandbox/window.ts | 23 ++++++- .../services/layout/browser/layoutService.ts | 5 ++ .../test/browser/workbenchTestServices.ts | 1 + 11 files changed, 126 insertions(+), 133 deletions(-) diff --git a/src/vs/workbench/browser/web.main.ts b/src/vs/workbench/browser/web.main.ts index 6bc4f1df5e6..288f982ec84 100644 --- a/src/vs/workbench/browser/web.main.ts +++ b/src/vs/workbench/browser/web.main.ts @@ -5,7 +5,7 @@ import { mark } from 'vs/base/common/performance'; import { hash } from 'vs/base/common/hash'; -import { domContentLoaded, addDisposableListener, EventType, EventHelper, detectFullscreen, addDisposableThrottledListener, getCookieValue } from 'vs/base/browser/dom'; +import { domContentLoaded, detectFullscreen, getCookieValue } from 'vs/base/browser/dom'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { ILogService, ConsoleLogService, MultiplexLogService, getLogLevel } from 'vs/platform/log/common/log'; import { ConsoleLogInAutomationService } from 'vs/platform/log/browser/log'; @@ -27,7 +27,6 @@ import { IWorkspaceContextService } from 'vs/platform/workspace/common/workspace import { IWorkbenchConfigurationService } from 'vs/workbench/services/configuration/common/configuration'; import { onUnexpectedError } from 'vs/base/common/errors'; import { setFullscreen } from 'vs/base/browser/browser'; -import { isIOS, isMacintosh } from 'vs/base/common/platform'; import { URI } from 'vs/base/common/uri'; import { IWorkspaceInitializationPayload } from 'vs/platform/workspaces/common/workspaces'; import { WorkspaceService } from 'vs/workbench/services/configuration/browser/configurationService'; @@ -37,7 +36,6 @@ import { SignService } from 'vs/platform/sign/browser/signService'; import type { IWorkbenchConstructionOptions, IWorkspace, IWorkbench } from 'vs/workbench/workbench.web.api'; import { BrowserStorageService } from 'vs/platform/storage/browser/storageService'; import { IStorageService } from 'vs/platform/storage/common/storage'; -import { registerWindowDriver } from 'vs/platform/driver/browser/driver'; import { BufferLogService } from 'vs/platform/log/common/bufferLog'; import { FileLogService } from 'vs/platform/log/common/fileLogService'; import { toLocalISOString } from 'vs/base/common/date'; @@ -54,7 +52,7 @@ import { UserDataSyncStoreManagementService } from 'vs/platform/userDataSync/com import { IUserDataSyncStoreManagementService } from 'vs/platform/userDataSync/common/userDataSync'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; import { Action2, MenuId, registerAction2 } from 'vs/platform/actions/common/actions'; -import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; +import { ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { localize } from 'vs/nls'; import { CATEGORIES } from 'vs/workbench/common/actions'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; @@ -63,7 +61,6 @@ import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/ur import { UriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentityService'; import { BrowserWindow } from 'vs/workbench/browser/window'; import { ITimerService } from 'vs/workbench/services/timer/browser/timerService'; -import { ILabelService } from 'vs/platform/label/common/label'; class BrowserMain extends Disposable { @@ -89,20 +86,11 @@ class BrowserMain extends Disposable { mark('code/willStartWorkbench'); // Create Workbench - const workbench = new Workbench( - this.domElement, - services.serviceCollection, - services.logService - ); + const workbench = new Workbench(this.domElement, services.serviceCollection, services.logService); // Listeners this.registerListeners(workbench, services.storageService, services.logService); - // Driver - if (this.configuration.driver) { - (async () => this._register(await registerWindowDriver()))(); - } - // Startup const instantiationService = workbench.startup(); @@ -112,9 +100,6 @@ class BrowserMain extends Disposable { // Logging services.logService.trace('workbench configuration', JSON.stringify(this.configuration)); - // Label formatting - this.registerLabelFormatters(instantiationService); - // Return API Facade return instantiationService.invokeFunction(accessor => { const commandService = accessor.get(ICommandService); @@ -139,22 +124,6 @@ class BrowserMain extends Disposable { private registerListeners(workbench: Workbench, storageService: BrowserStorageService, logService: ILogService): void { - // Layout - const viewport = isIOS && window.visualViewport ? window.visualViewport /** Visual viewport */ : window /** Layout viewport */; - this._register(addDisposableListener(viewport, EventType.RESIZE, () => { - logService.trace(`web.main#${isIOS && window.visualViewport ? 'visualViewport' : 'window'}Resize`); - workbench.layout(); - })); - - // Prevent the back/forward gestures in macOS - this._register(addDisposableListener(this.domElement, EventType.WHEEL, e => e.preventDefault(), { passive: false })); - - // Prevent native context menus in web - this._register(addDisposableListener(this.domElement, EventType.CONTEXT_MENU, e => EventHelper.stop(e, true))); - - // Prevent default navigation on drop - this._register(addDisposableListener(this.domElement, EventType.DROP, e => EventHelper.stop(e, true))); - // Workbench Lifecycle this._register(workbench.onBeforeShutdown(event => { if (storageService.hasPendingUpdate) { @@ -163,16 +132,6 @@ class BrowserMain extends Disposable { })); this._register(workbench.onWillShutdown(() => storageService.close())); this._register(workbench.onShutdown(() => this.dispose())); - - // Fullscreen (Browser) - [EventType.FULLSCREEN_CHANGE, EventType.WK_FULLSCREEN_CHANGE].forEach(event => { - this._register(addDisposableListener(document, event, () => setFullscreen(!!detectFullscreen()))); - }); - - // Fullscreen (Native) - this._register(addDisposableThrottledListener(viewport, EventType.RESIZE, () => { - setFullscreen(!!detectFullscreen()); - }, undefined, isMacintosh ? 2000 /* adjust for macOS animation */ : 800 /* can be throttled */)); } private async initServices(): Promise<{ serviceCollection: ServiceCollection, configurationService: IWorkbenchConfigurationService, logService: ILogService, storageService: BrowserStorageService }> { @@ -343,19 +302,6 @@ class BrowserMain extends Disposable { } } - private registerLabelFormatters(instantiationService: IInstantiationService) { - instantiationService.invokeFunction((accessor) => { - accessor.get(ILabelService).registerFormatter({ - scheme: Schemas.userData, - priority: true, - formatting: { - label: '${scheme}:${path}', - separator: '/', - } - }); - }); - } - private async createStorageService(payload: IWorkspaceInitializationPayload, environmentService: IWorkbenchEnvironmentService, fileService: IFileService, logService: ILogService): Promise { const storageService = new BrowserStorageService(environmentService, fileService); diff --git a/src/vs/workbench/browser/window.ts b/src/vs/workbench/browser/window.ts index 38780ec68d3..337771b2d29 100644 --- a/src/vs/workbench/browser/window.ts +++ b/src/vs/workbench/browser/window.ts @@ -3,17 +3,24 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { EventType, windowOpenNoOpener } from 'vs/base/browser/dom'; +import { setFullscreen } from 'vs/base/browser/browser'; +import { addDisposableListener, addDisposableThrottledListener, detectFullscreen, EventHelper, EventType, windowOpenNoOpener } from 'vs/base/browser/dom'; import { domEvent } from 'vs/base/browser/event'; import { timeout } from 'vs/base/common/async'; import { Event } from 'vs/base/common/event'; import { Disposable } from 'vs/base/common/lifecycle'; import { Schemas } from 'vs/base/common/network'; +import { isIOS, isMacintosh } from 'vs/base/common/platform'; import Severity from 'vs/base/common/severity'; import { localize } from 'vs/nls'; import { IDialogService } from 'vs/platform/dialogs/common/dialogs'; +import { registerWindowDriver } from 'vs/platform/driver/browser/driver'; +import { ILabelService } from 'vs/platform/label/common/label'; +import { ILogService } from 'vs/platform/log/common/log'; import { IOpenerService, matchesScheme } from 'vs/platform/opener/common/opener'; +import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { IHostService } from 'vs/workbench/services/host/browser/host'; +import { IWorkbenchLayoutService } from 'vs/workbench/services/layout/browser/layoutService'; import { BrowserLifecycleService } from 'vs/workbench/services/lifecycle/browser/lifecycleService'; import { ILifecycleService } from 'vs/workbench/services/lifecycle/common/lifecycle'; @@ -23,7 +30,11 @@ export class BrowserWindow extends Disposable { @IOpenerService private readonly openerService: IOpenerService, @ILifecycleService private readonly lifecycleService: BrowserLifecycleService, @IDialogService private readonly dialogService: IDialogService, - @IHostService private readonly hostService: IHostService + @IHostService private readonly hostService: IHostService, + @ILabelService private readonly labelService: ILabelService, + @IWorkbenchEnvironmentService private readonly environmentService: IWorkbenchEnvironmentService, + @ILogService private readonly logService: ILogService, + @IWorkbenchLayoutService private readonly layoutService: IWorkbenchLayoutService ) { super(); @@ -32,7 +43,38 @@ export class BrowserWindow extends Disposable { } private registerListeners(): void { + + // Lifecycle this._register(this.lifecycleService.onWillShutdown(() => this.onWillShutdown())); + + // Layout + const viewport = isIOS && window.visualViewport ? window.visualViewport /** Visual viewport */ : window /** Layout viewport */; + this._register(addDisposableListener(viewport, EventType.RESIZE, () => this.onWindowResize())); + + // Prevent the back/forward gestures in macOS + this._register(addDisposableListener(this.layoutService.getWorkbenchContainer(), EventType.WHEEL, e => e.preventDefault(), { passive: false })); + + // Prevent native context menus in web + this._register(addDisposableListener(this.layoutService.getWorkbenchContainer(), EventType.CONTEXT_MENU, e => EventHelper.stop(e, true))); + + // Prevent default navigation on drop + this._register(addDisposableListener(this.layoutService.getWorkbenchContainer(), EventType.DROP, e => EventHelper.stop(e, true))); + + // Fullscreen (Browser) + [EventType.FULLSCREEN_CHANGE, EventType.WK_FULLSCREEN_CHANGE].forEach(event => { + this._register(addDisposableListener(document, event, () => setFullscreen(!!detectFullscreen()))); + }); + + // Fullscreen (Native) + this._register(addDisposableThrottledListener(viewport, EventType.RESIZE, () => { + setFullscreen(!!detectFullscreen()); + }, undefined, isMacintosh ? 2000 /* adjust for macOS animation */ : 800 /* can be throttled */)); + } + + private onWindowResize(): void { + this.logService.trace(`web.main#${isIOS && window.visualViewport ? 'visualViewport' : 'window'}Resize`); + + this.layoutService.layout(); } private onWillShutdown(): void { @@ -72,8 +114,16 @@ export class BrowserWindow extends Disposable { private create(): void { + // Driver + if (this.environmentService.options?.driver) { + (async () => this._register(await registerWindowDriver()))(); + } + // Handle open calls this.setupOpenHandlers(); + + // Label formatting + this.registerLabelFormatters(); } private setupOpenHandlers(): void { @@ -97,4 +147,15 @@ export class BrowserWindow extends Disposable { } }); } + + private registerLabelFormatters() { + this.labelService.registerFormatter({ + scheme: Schemas.userData, + priority: true, + formatting: { + label: '${scheme}:${path}', + separator: '/', + } + }); + } } diff --git a/src/vs/workbench/browser/workbench.ts b/src/vs/workbench/browser/workbench.ts index 11a8000f894..aedb2a6f604 100644 --- a/src/vs/workbench/browser/workbench.ts +++ b/src/vs/workbench/browser/workbench.ts @@ -177,10 +177,17 @@ export class Workbench extends Layout { // Layout Service serviceCollection.set(IWorkbenchLayoutService, this); - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - // NOTE: DO NOT ADD ANY OTHER SERVICE INTO THE COLLECTION HERE. - // CONTRIBUTE IT VIA WORKBENCH.DESKTOP.MAIN.TS AND registerSingleton(). - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // + // NOTE: Please do NOT register services here. Use `registerSingleton()` + // from `workbench.common.main.ts` if the service is shared between + // native and web or `workbench.sandbox.main.ts` if the service + // is native only. + // + // DO NOT add services to `workbench.desktop.main.ts`, always add + // to `workbench.sandbox.main.ts` to support our Electron sandbox + // + // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // All Contributed Services const contributedServices = getSingletonServiceDescriptors(); diff --git a/src/vs/workbench/electron-browser/desktop.main.ts b/src/vs/workbench/electron-browser/desktop.main.ts index 56fd77afd1f..ace733d992c 100644 --- a/src/vs/workbench/electron-browser/desktop.main.ts +++ b/src/vs/workbench/electron-browser/desktop.main.ts @@ -13,7 +13,7 @@ import { mark } from 'vs/base/common/performance'; import { Workbench } from 'vs/workbench/browser/workbench'; import { NativeWindow } from 'vs/workbench/electron-sandbox/window'; import { setZoomLevel, setZoomFactor, setFullscreen } from 'vs/base/browser/browser'; -import { domContentLoaded, addDisposableListener, EventType, scheduleAtNextAnimationFrame } from 'vs/base/browser/dom'; +import { domContentLoaded } from 'vs/base/browser/dom'; import { onUnexpectedError } from 'vs/base/common/errors'; import { URI } from 'vs/base/common/uri'; import { WorkspaceService } from 'vs/workbench/services/configuration/browser/configurationService'; @@ -137,32 +137,11 @@ class DesktopMain extends Disposable { private registerListeners(workbench: Workbench, storageService: NativeStorageService): void { - // Layout - this._register(addDisposableListener(window, EventType.RESIZE, e => this.onWindowResize(e, true, workbench))); - // Workbench Lifecycle this._register(workbench.onShutdown(() => this.dispose())); this._register(workbench.onWillShutdown(event => event.join(storageService.close(), 'join.closeStorage'))); } - private onWindowResize(e: Event, retry: boolean, workbench: Workbench): void { - if (e.target === window) { - if (window.document && window.document.body && window.document.body.clientWidth === 0) { - // TODO@bpasero this is an electron issue on macOS when simple fullscreen is enabled - // where for some reason the window clientWidth is reported as 0 when switching - // between simple fullscreen and normal screen. In that case we schedule the layout - // call at the next animation frame once, in the hope that the dimensions are - // proper then. - if (retry) { - scheduleAtNextAnimationFrame(() => this.onWindowResize(e, false, workbench)); - } - return; - } - - workbench.layout(); - } - } - private async initServices(): Promise<{ serviceCollection: ServiceCollection, logService: ILogService, storageService: NativeStorageService }> { const serviceCollection = new ServiceCollection(); diff --git a/src/vs/workbench/electron-sandbox/actions/developerActions.ts b/src/vs/workbench/electron-sandbox/actions/developerActions.ts index 345e3490a08..ca7c10ca852 100644 --- a/src/vs/workbench/electron-sandbox/actions/developerActions.ts +++ b/src/vs/workbench/electron-sandbox/actions/developerActions.ts @@ -81,3 +81,19 @@ export class ToggleSharedProcessAction extends Action2 { return accessor.get(INativeHostService).toggleSharedProcessWindow(); } } + +export class ReloadWindowWithExtensionsDisabledAction extends Action2 { + + constructor() { + super({ + id: 'workbench.action.reloadWindowWithExtensionsDisabled', + title: { value: localize('reloadWindowWithExtensionsDisabled', "Reload With Extensions Disabled"), original: 'Reload With Extensions Disabled' }, + category: CATEGORIES.Developer, + f1: true + }); + } + + async run(accessor: ServicesAccessor): Promise { + return accessor.get(INativeHostService).reload({ disableExtensions: true }); + } +} diff --git a/src/vs/workbench/electron-sandbox/actions/windowActions.ts b/src/vs/workbench/electron-sandbox/actions/windowActions.ts index f2554bdc241..3cd141c1a37 100644 --- a/src/vs/workbench/electron-sandbox/actions/windowActions.ts +++ b/src/vs/workbench/electron-sandbox/actions/windowActions.ts @@ -4,7 +4,6 @@ *--------------------------------------------------------------------------------------------*/ import 'vs/css!./media/actions'; - import { URI } from 'vs/base/common/uri'; import { Action } from 'vs/base/common/actions'; import * as nls from 'vs/nls'; @@ -122,26 +121,6 @@ export class ZoomResetAction extends BaseZoomAction { } } -export class ReloadWindowWithExtensionsDisabledAction extends Action { - - static readonly ID = 'workbench.action.reloadWindowWithExtensionsDisabled'; - static readonly LABEL = nls.localize('reloadWindowWithExtensionsDisabled', "Reload With Extensions Disabled"); - - constructor( - id: string, - label: string, - @INativeHostService private readonly nativeHostService: INativeHostService - ) { - super(id, label); - } - - async run(): Promise { - await this.nativeHostService.reload({ disableExtensions: true }); - - return true; - } -} - export abstract class BaseSwitchWindow extends Action { private readonly closeWindowAction: IQuickInputButton = { diff --git a/src/vs/workbench/electron-sandbox/desktop.contribution.ts b/src/vs/workbench/electron-sandbox/desktop.contribution.ts index 224608f30d1..299561eb5e1 100644 --- a/src/vs/workbench/electron-sandbox/desktop.contribution.ts +++ b/src/vs/workbench/electron-sandbox/desktop.contribution.ts @@ -11,8 +11,8 @@ import { IConfigurationRegistry, Extensions as ConfigurationExtensions, Configur import { IWorkbenchActionRegistry, Extensions, CATEGORIES } from 'vs/workbench/common/actions'; import { KeyMod, KeyCode } from 'vs/base/common/keyCodes'; import { isLinux, isMacintosh } from 'vs/base/common/platform'; -import { ConfigureRuntimeArgumentsAction, ToggleDevToolsAction, ToggleSharedProcessAction } from 'vs/workbench/electron-sandbox/actions/developerActions'; -import { ZoomResetAction, ZoomOutAction, ZoomInAction, CloseCurrentWindowAction, SwitchWindow, QuickSwitchWindow, ReloadWindowWithExtensionsDisabledAction, NewWindowTabHandler, ShowPreviousWindowTabHandler, ShowNextWindowTabHandler, MoveWindowTabToNewWindowHandler, MergeWindowTabsHandlerHandler, ToggleWindowTabsBarHandler } from 'vs/workbench/electron-sandbox/actions/windowActions'; +import { ConfigureRuntimeArgumentsAction, ToggleDevToolsAction, ToggleSharedProcessAction, ReloadWindowWithExtensionsDisabledAction } from 'vs/workbench/electron-sandbox/actions/developerActions'; +import { ZoomResetAction, ZoomOutAction, ZoomInAction, CloseCurrentWindowAction, SwitchWindow, QuickSwitchWindow, NewWindowTabHandler, ShowPreviousWindowTabHandler, ShowNextWindowTabHandler, MoveWindowTabToNewWindowHandler, MergeWindowTabsHandlerHandler, ToggleWindowTabsBarHandler } from 'vs/workbench/electron-sandbox/actions/windowActions'; import { ContextKeyExpr } from 'vs/platform/contextkey/common/contextkey'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { CommandsRegistry } from 'vs/platform/commands/common/commands'; @@ -87,8 +87,7 @@ import { IJSONSchema } from 'vs/base/common/jsonSchema'; // Actions: Developer (function registerDeveloperActions(): void { - registry.registerWorkbenchAction(SyncActionDescriptor.from(ReloadWindowWithExtensionsDisabledAction), 'Developer: Reload With Extensions Disabled', CATEGORIES.Developer.value); - + registerAction2(ReloadWindowWithExtensionsDisabledAction); registerAction2(ConfigureRuntimeArgumentsAction); registerAction2(ToggleSharedProcessAction); registerAction2(ToggleDevToolsAction); diff --git a/src/vs/workbench/electron-sandbox/desktop.main.ts b/src/vs/workbench/electron-sandbox/desktop.main.ts index bd84d333419..d686b308cf7 100644 --- a/src/vs/workbench/electron-sandbox/desktop.main.ts +++ b/src/vs/workbench/electron-sandbox/desktop.main.ts @@ -8,7 +8,7 @@ import { mark } from 'vs/base/common/performance'; import { Workbench } from 'vs/workbench/browser/workbench'; import { NativeWindow } from 'vs/workbench/electron-sandbox/window'; import { setZoomLevel, setZoomFactor, setFullscreen } from 'vs/base/browser/browser'; -import { domContentLoaded, addDisposableListener, EventType, scheduleAtNextAnimationFrame } from 'vs/base/browser/dom'; +import { domContentLoaded } from 'vs/base/browser/dom'; import { URI } from 'vs/base/common/uri'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; @@ -109,32 +109,11 @@ class DesktopMain extends Disposable { private registerListeners(workbench: Workbench, storageService: SimpleStorageService): void { - // Layout - this._register(addDisposableListener(window, EventType.RESIZE, e => this.onWindowResize(e, true, workbench))); - // Workbench Lifecycle this._register(workbench.onShutdown(() => this.dispose())); this._register(workbench.onWillShutdown(event => event.join(storageService.close(), 'join.closeStorage'))); } - private onWindowResize(e: Event, retry: boolean, workbench: Workbench): void { - if (e.target === window) { - if (window.document && window.document.body && window.document.body.clientWidth === 0) { - // TODO@bpasero this is an electron issue on macOS when simple fullscreen is enabled - // where for some reason the window clientWidth is reported as 0 when switching - // between simple fullscreen and normal screen. In that case we schedule the layout - // call at the next animation frame once, in the hope that the dimensions are - // proper then. - if (retry) { - scheduleAtNextAnimationFrame(() => this.onWindowResize(e, false, workbench)); - } - return; - } - - workbench.layout(); - } - } - private async initServices(): Promise<{ serviceCollection: ServiceCollection, logService: ILogService, storageService: SimpleStorageService }> { const serviceCollection = new ServiceCollection(); diff --git a/src/vs/workbench/electron-sandbox/window.ts b/src/vs/workbench/electron-sandbox/window.ts index 7a9276816d6..9e0cda7d880 100644 --- a/src/vs/workbench/electron-sandbox/window.ts +++ b/src/vs/workbench/electron-sandbox/window.ts @@ -7,7 +7,7 @@ import { localize } from 'vs/nls'; import { URI } from 'vs/base/common/uri'; import { onUnexpectedError } from 'vs/base/common/errors'; import { equals } from 'vs/base/common/objects'; -import { EventType, EventHelper, addDisposableListener } from 'vs/base/browser/dom'; +import { EventType, EventHelper, addDisposableListener, scheduleAtNextAnimationFrame } from 'vs/base/browser/dom'; import { Separator } from 'vs/base/common/actions'; import { IFileService } from 'vs/platform/files/common/files'; import { EditorResourceAccessor, IUntitledTextResourceEditorInput, SideBySideEditor, pathsToEditors } from 'vs/workbench/common/editor'; @@ -115,6 +115,9 @@ export class NativeWindow extends Disposable { private registerListeners(): void { + // Layout + this._register(addDisposableListener(window, EventType.RESIZE, e => this.onWindowResize(e, true))); + // React to editor input changes this._register(this.editorService.onDidActiveEditorChange(() => this.updateTouchbarMenu())); @@ -328,6 +331,24 @@ export class NativeWindow extends Disposable { this.onDidPanelPositionChange(this.layoutService.getPanelPosition()); } + private onWindowResize(e: UIEvent, retry: boolean): void { + if (e.target === window) { + if (window.document && window.document.body && window.document.body.clientWidth === 0) { + // TODO@bpasero this is an electron issue on macOS when simple fullscreen is enabled + // where for some reason the window clientWidth is reported as 0 when switching + // between simple fullscreen and normal screen. In that case we schedule the layout + // call at the next animation frame once, in the hope that the dimensions are + // proper then. + if (retry) { + scheduleAtNextAnimationFrame(() => this.onWindowResize(e, false)); + } + return; + } + + this.layoutService.layout(); + } + } + private updateDocumentEdited(isDirty = this.workingCopyService.hasDirty): void { if ((!this.isDocumentedEdited && isDirty) || (this.isDocumentedEdited && !isDirty)) { this.isDocumentedEdited = isDirty; diff --git a/src/vs/workbench/services/layout/browser/layoutService.ts b/src/vs/workbench/services/layout/browser/layoutService.ts index 34d74f2b490..59e29ef7a6e 100644 --- a/src/vs/workbench/services/layout/browser/layoutService.ts +++ b/src/vs/workbench/services/layout/browser/layoutService.ts @@ -106,6 +106,11 @@ export interface IWorkbenchLayoutService extends ILayoutService { */ readonly onPartVisibilityChange: Event; + /** + * Run a layout of the workbench. + */ + layout(): void; + /** * Asks the part service if all parts have been fully restored. For editor part * this means that the contents of editors have loaded. diff --git a/src/vs/workbench/test/browser/workbenchTestServices.ts b/src/vs/workbench/test/browser/workbenchTestServices.ts index ce503be42a4..1f5675198ba 100644 --- a/src/vs/workbench/test/browser/workbenchTestServices.ts +++ b/src/vs/workbench/test/browser/workbenchTestServices.ts @@ -439,6 +439,7 @@ export class TestLayoutService implements IWorkbenchLayoutService { private readonly _onMenubarVisibilityChange = new Emitter(); get onMenubarVisibilityChange(): Event { return this._onMenubarVisibilityChange.event; } + layout(): void { } isRestored(): boolean { return true; } hasFocus(_part: Parts): boolean { return false; } focusPart(_part: Parts): void { } From 691951c3b1c742c2fd11490fe26086ae03c4d71e Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 18 Jan 2021 08:37:35 +0100 Subject: [PATCH 150/171] editor title - no need to update menu onDidRegisterExtensions --- .../workbench/browser/parts/editor/tabsTitleControl.ts | 4 +--- src/vs/workbench/browser/parts/editor/titleControl.ts | 9 --------- 2 files changed, 1 insertion(+), 12 deletions(-) diff --git a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts index e08daada1d6..558a3b72adf 100644 --- a/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts +++ b/src/vs/workbench/browser/parts/editor/tabsTitleControl.ts @@ -30,7 +30,6 @@ import { activeContrastBorder, contrastBorder, editorBackground, breadcrumbsBack import { ResourcesDropHandler, DraggedEditorIdentifier, DraggedEditorGroupIdentifier, DragAndDropObserver } from 'vs/workbench/browser/dnd'; import { Color } from 'vs/base/common/color'; import { INotificationService } from 'vs/platform/notification/common/notification'; -import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { MergeGroupMode, IMergeGroupOptions, GroupsArrangement, IEditorGroupsService } from 'vs/workbench/services/editor/common/editorGroupsService'; import { addDisposableListener, EventType, EventHelper, Dimension, scheduleAtNextAnimationFrame, findParentWithClass, clearNode } from 'vs/base/browser/dom'; import { localize } from 'vs/nls'; @@ -116,14 +115,13 @@ export class TabsTitleControl extends TitleControl { @IMenuService menuService: IMenuService, @IQuickInputService quickInputService: IQuickInputService, @IThemeService themeService: IThemeService, - @IExtensionService extensionService: IExtensionService, @IConfigurationService configurationService: IConfigurationService, @IFileService fileService: IFileService, @IEditorService private readonly editorService: EditorServiceImpl, @IPathService private readonly pathService: IPathService, @IEditorGroupsService private readonly editorGroupService: IEditorGroupsService ) { - super(parent, accessor, group, contextMenuService, instantiationService, contextKeyService, keybindingService, telemetryService, notificationService, menuService, quickInputService, themeService, extensionService, configurationService, fileService); + super(parent, accessor, group, contextMenuService, instantiationService, contextKeyService, keybindingService, telemetryService, notificationService, menuService, quickInputService, themeService, configurationService, fileService); // Resolve the correct path library for the OS we are on // If we are connected to remote, this accounts for the diff --git a/src/vs/workbench/browser/parts/editor/titleControl.ts b/src/vs/workbench/browser/parts/editor/titleControl.ts index e1847682a9b..5aff2dc81a2 100644 --- a/src/vs/workbench/browser/parts/editor/titleControl.ts +++ b/src/vs/workbench/browser/parts/editor/titleControl.ts @@ -33,7 +33,6 @@ import { BreadcrumbsControl, IBreadcrumbsControlOptions } from 'vs/workbench/bro import { IEditorGroupsAccessor, IEditorGroupTitleDimensions, IEditorGroupView } from 'vs/workbench/browser/parts/editor/editor'; import { EditorCommandsContextActionRunner, IEditorCommandsContext, IEditorInput, EditorResourceAccessor, IEditorPartOptions, SideBySideEditor, ActiveEditorPinnedContext, ActiveEditorStickyContext } from 'vs/workbench/common/editor'; import { ResourceContextKey } from 'vs/workbench/common/resources'; -import { IExtensionService } from 'vs/workbench/services/extensions/common/extensions'; import { AnchorAlignment } from 'vs/base/browser/ui/contextview/contextview'; import { IFileService } from 'vs/platform/files/common/files'; import { withNullAsUndefined, withUndefinedAsNull, assertIsDefined } from 'vs/base/common/types'; @@ -89,7 +88,6 @@ export abstract class TitleControl extends Themable { @IMenuService private readonly menuService: IMenuService, @IQuickInputService protected quickInputService: IQuickInputService, @IThemeService themeService: IThemeService, - @IExtensionService private readonly extensionService: IExtensionService, @IConfigurationService protected configurationService: IConfigurationService, @IFileService private readonly fileService: IFileService ) { @@ -102,13 +100,6 @@ export abstract class TitleControl extends Themable { this.contextMenu = this._register(this.menuService.createMenu(MenuId.EditorTitleContext, this.contextKeyService)); this.create(parent); - this.registerListeners(); - } - - private registerListeners(): void { - - // Update actions toolbar when extension register that may contribute them - this._register(this.extensionService.onDidRegisterExtensions(() => this.updateEditorActionsToolbar())); } protected abstract create(parent: HTMLElement): void; From 9cea4954aa5c78a20ffc75722a2b9c75adba5d1d Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 18 Jan 2021 08:38:35 +0100 Subject: [PATCH 151/171] notifications :lipstick: --- .../contextview/browser/contextMenuHandler.ts | 2 +- .../browser/parts/editor/editorCommands.ts | 15 --------------- .../codeEditor/browser/diffEditorHelper.ts | 2 +- .../codeEditor/browser/largeFileOptimizations.ts | 2 +- .../browser/localizations.contribution.ts | 2 +- 5 files changed, 4 insertions(+), 19 deletions(-) diff --git a/src/vs/platform/contextview/browser/contextMenuHandler.ts b/src/vs/platform/contextview/browser/contextMenuHandler.ts index 1788290ccda..0b515dc515d 100644 --- a/src/vs/platform/contextview/browser/contextMenuHandler.ts +++ b/src/vs/platform/contextview/browser/contextMenuHandler.ts @@ -158,7 +158,7 @@ export class ContextMenuHandler { } private onDidActionRun(e: IRunEvent): void { - if (e.error && this.notificationService) { + if (e.error) { this.notificationService.error(e.error); } } diff --git a/src/vs/workbench/browser/parts/editor/editorCommands.ts b/src/vs/workbench/browser/parts/editor/editorCommands.ts index 2cb90672de5..f9fd2d57164 100644 --- a/src/vs/workbench/browser/parts/editor/editorCommands.ts +++ b/src/vs/workbench/browser/parts/editor/editorCommands.ts @@ -23,7 +23,6 @@ import { IConfigurationService } from 'vs/platform/configuration/common/configur import { CommandsRegistry, ICommandHandler } from 'vs/platform/commands/common/commands'; import { MenuRegistry, MenuId } from 'vs/platform/actions/common/actions'; import { ActiveGroupEditorsByMostRecentlyUsedQuickAccess } from 'vs/workbench/browser/parts/editor/editorQuickAccess'; -import { INotificationService, Severity } from 'vs/platform/notification/common/notification'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { ITextEditorOptions } from 'vs/platform/editor/common/editor'; import { openEditorWith } from 'vs/workbench/services/editor/common/editorOpenWith'; @@ -901,24 +900,10 @@ function registerOtherEditorCommands(): void { id: TOGGLE_KEEP_EDITORS_COMMAND_ID, handler: accessor => { const configurationService = accessor.get(IConfigurationService); - const notificationService = accessor.get(INotificationService); - const openerService = accessor.get(IOpenerService); - // Update setting const currentSetting = configurationService.getValue('workbench.editor.enablePreview'); const newSetting = currentSetting === true ? false : true; configurationService.updateValue('workbench.editor.enablePreview', newSetting); - - // Inform user - notificationService.prompt( - Severity.Info, - newSetting ? - nls.localize('enablePreview', "Preview editors have been enabled in settings.") : - nls.localize('disablePreview', "Preview editors have been disabled in settings."), - [{ - label: nls.localize('learnMore', "Learn More"), run: () => openerService.open('https://go.microsoft.com/fwlink/?linkid=2147473') - }] - ); } }); diff --git a/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts b/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts index 2d069c9a9e4..0f7a8480b32 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/diffEditorHelper.ts @@ -48,7 +48,7 @@ class DiffEditorHelperContribution extends Disposable implements IDiffEditorCont Severity.Warning, nls.localize('hintTimeout', "The diff algorithm was stopped early (after {0} ms.)", this._diffEditor.maxComputationTime), [{ - label: nls.localize('removeTimeout', "Remove limit"), + label: nls.localize('removeTimeout', "Remove Limit"), run: () => { this._configurationService.updateValue('diffEditor.maxComputationTime', 0); } diff --git a/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.ts b/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.ts index f7a7ea98dfb..0d817416672 100644 --- a/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.ts +++ b/src/vs/workbench/contrib/codeEditor/browser/largeFileOptimizations.ts @@ -46,7 +46,7 @@ export class LargeFileOptimizationsWarner extends Disposable implements IEditorC this._notificationService.prompt(Severity.Info, message, [ { - label: nls.localize('removeOptimizations', "Forcefully enable features"), + label: nls.localize('removeOptimizations', "Forcefully Enable Features"), run: () => { this._configurationService.updateValue(`editor.largeFileOptimizations`, false).then(() => { this._notificationService.info(nls.localize('reopenFilePrompt', "Please reopen file in order for this setting to take effect.")); diff --git a/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts b/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts index f8b4c1582eb..a2dd3271590 100644 --- a/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts +++ b/src/vs/workbench/contrib/localizations/browser/localizations.contribution.ts @@ -60,7 +60,7 @@ export class LocalizationWorkbenchContribution extends Disposable implements IWo updateAndRestart ? localize('updateLocale', "Would you like to change VS Code's UI language to {0} and restart?", e.local.manifest.contributes.localizations[0].languageName || e.local.manifest.contributes.localizations[0].languageId) : localize('activateLanguagePack', "In order to use VS Code in {0}, VS Code needs to restart.", e.local.manifest.contributes.localizations[0].languageName || e.local.manifest.contributes.localizations[0].languageId), [{ - label: updateAndRestart ? localize('yes', "Yes") : localize('restart now', "Restart Now"), + label: updateAndRestart ? localize('changeAndRestart', "Change Language and Restart") : localize('restart', "Restart"), run: () => { const updatePromise = updateAndRestart ? this.jsonEditingService.write(this.environmentService.argvResource, [{ path: ['locale'], value: locale }], true) : Promise.resolve(undefined); updatePromise.then(() => this.hostService.restart(), e => this.notificationService.error(e)); From 93b5a0591f7df0d88818c233bf50d82a7db19960 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 18 Jan 2021 08:40:34 +0100 Subject: [PATCH 152/171] sandbox - lift remote agent service to electron-sandbox --- .../extensionsActions.test.ts | 2 +- .../electron-browser/extensionsViews.test.ts | 2 +- .../extensionsWorkbenchService.test.ts | 2 +- .../electron-browser/desktop.main.ts | 4 +-- .../electron-sandbox/desktop.main.ts | 35 ++++++++++--------- .../sandbox.simpleservices.ts | 30 ++-------------- .../configurationCache.ts | 2 -- .../remoteAgentServiceImpl.ts | 2 +- src/vs/workbench/workbench.desktop.main.ts | 1 - 9 files changed, 26 insertions(+), 54 deletions(-) rename src/vs/workbench/services/configuration/{electron-browser => electron-sandbox}/configurationCache.ts (99%) rename src/vs/workbench/services/remote/{electron-browser => electron-sandbox}/remoteAgentServiceImpl.ts (100%) diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts index 6297b551409..bcef66bbdc0 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsActions.test.ts @@ -33,7 +33,7 @@ import { NativeURLService } from 'vs/platform/url/common/urlService'; import { URI } from 'vs/base/common/uri'; import { TestConfigurationService } from 'vs/platform/configuration/test/common/testConfigurationService'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; -import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; +import { RemoteAgentService } from 'vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl'; import { ExtensionIdentifier, IExtensionContributions, ExtensionType, IExtensionDescription, IExtension } from 'vs/platform/extensions/common/extensions'; import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { CancellationToken } from 'vs/base/common/cancellation'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts index e643b2dbed0..b1e00bb8089 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsViews.test.ts @@ -35,7 +35,7 @@ import { TestConfigurationService } from 'vs/platform/configuration/test/common/ import { SinonStub } from 'sinon'; import { IExperimentService, ExperimentState, ExperimentActionType, ExperimentService } from 'vs/workbench/contrib/experiments/common/experimentService'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; -import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; +import { RemoteAgentService } from 'vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl'; import { ExtensionType, IExtension, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; diff --git a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts index e73daad5a26..76a50206261 100644 --- a/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts +++ b/src/vs/workbench/contrib/extensions/test/electron-browser/extensionsWorkbenchService.test.ts @@ -36,7 +36,7 @@ import { URI } from 'vs/base/common/uri'; import { CancellationToken } from 'vs/base/common/cancellation'; import { ExtensionType, IExtension, ExtensionKind } from 'vs/platform/extensions/common/extensions'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; -import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; +import { RemoteAgentService } from 'vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl'; import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; import { TestContextService } from 'vs/workbench/test/common/workbenchTestServices'; import { IProductService } from 'vs/platform/product/common/productService'; diff --git a/src/vs/workbench/electron-browser/desktop.main.ts b/src/vs/workbench/electron-browser/desktop.main.ts index ace733d992c..d23f6753b6e 100644 --- a/src/vs/workbench/electron-browser/desktop.main.ts +++ b/src/vs/workbench/electron-browser/desktop.main.ts @@ -35,13 +35,13 @@ import { registerWindowDriver } from 'vs/platform/driver/electron-browser/driver import { IMainProcessService, ElectronIPCMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { RemoteAuthorityResolverService } from 'vs/platform/remote/electron-sandbox/remoteAuthorityResolverService'; import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver'; -import { RemoteAgentService } from 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; +import { RemoteAgentService } from 'vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { FileService } from 'vs/platform/files/common/fileService'; import { IFileService } from 'vs/platform/files/common/files'; import { DiskFileSystemProvider } from 'vs/platform/files/electron-browser/diskFileSystemProvider'; import { RemoteFileSystemProvider } from 'vs/workbench/services/remote/common/remoteAgentFileSystemChannel'; -import { ConfigurationCache } from 'vs/workbench/services/configuration/electron-browser/configurationCache'; +import { ConfigurationCache } from 'vs/workbench/services/configuration/electron-sandbox/configurationCache'; import { SignService } from 'vs/platform/sign/node/signService'; import { ISignService } from 'vs/platform/sign/common/sign'; import { FileUserDataProvider } from 'vs/workbench/services/userData/common/fileUserDataProvider'; diff --git a/src/vs/workbench/electron-sandbox/desktop.main.ts b/src/vs/workbench/electron-sandbox/desktop.main.ts index d686b308cf7..3134908c38f 100644 --- a/src/vs/workbench/electron-sandbox/desktop.main.ts +++ b/src/vs/workbench/electron-sandbox/desktop.main.ts @@ -22,6 +22,7 @@ import { Disposable } from 'vs/base/common/lifecycle'; import { IMainProcessService, ElectronIPCMainProcessService } from 'vs/platform/ipc/electron-sandbox/mainProcessService'; import { IRemoteAuthorityResolverService } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; +import { RemoteAgentService } from 'vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl'; import { FileService } from 'vs/platform/files/common/fileService'; import { IFileService } from 'vs/platform/files/common/files'; import { RemoteFileSystemProvider } from 'vs/workbench/services/remote/common/remoteAgentFileSystemChannel'; @@ -31,7 +32,7 @@ import { IProductService } from 'vs/platform/product/common/productService'; import product from 'vs/platform/product/common/product'; import { INativeHostService } from 'vs/platform/native/electron-sandbox/native'; import { NativeHostService } from 'vs/platform/native/electron-sandbox/nativeHostService'; -import { SimpleConfigurationService, simpleFileSystemProvider, SimpleLogService, SimpleRemoteAgentService, SimpleSignService, SimpleStorageService, SimpleNativeWorkbenchEnvironmentService, SimpleWorkspaceService } from 'vs/workbench/electron-sandbox/sandbox.simpleservices'; +import { SimpleConfigurationService, simpleFileSystemProvider, SimpleLogService, SimpleSignService, SimpleStorageService, SimpleNativeWorkbenchEnvironmentService, SimpleWorkspaceService } from 'vs/workbench/electron-sandbox/sandbox.simpleservices'; import { INativeWorkbenchConfiguration, INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { RemoteAuthorityResolverService } from 'vs/platform/remote/electron-sandbox/remoteAuthorityResolverService'; import { IUriIdentityService } from 'vs/workbench/services/uriIdentity/common/uriIdentity'; @@ -39,6 +40,7 @@ import { UriIdentityService } from 'vs/workbench/services/uriIdentity/common/uri class DesktopMain extends Disposable { + private readonly productService: IProductService = { _serviceBrand: undefined, ...product }; private readonly environmentService = new SimpleNativeWorkbenchEnvironmentService(this.configuration); constructor(private configuration: INativeWorkbenchConfiguration) { @@ -140,8 +142,7 @@ class DesktopMain extends Disposable { serviceCollection.set(INativeWorkbenchEnvironmentService, this.environmentService); // Product - const productService: IProductService = { _serviceBrand: undefined, ...product }; - serviceCollection.set(IProductService, productService); + serviceCollection.set(IProductService, this.productService); // Log const logService = new SimpleLogService(); @@ -151,14 +152,6 @@ class DesktopMain extends Disposable { const remoteAuthorityResolverService = new RemoteAuthorityResolverService(); serviceCollection.set(IRemoteAuthorityResolverService, remoteAuthorityResolverService); - // Sign - const signService = new SimpleSignService(); - serviceCollection.set(ISignService, signService); - - // Remote Agent - const remoteAgentService = new SimpleRemoteAgentService(); - serviceCollection.set(IRemoteAgentService, remoteAgentService); - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // @@ -173,6 +166,14 @@ class DesktopMain extends Disposable { // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + // Sign + const signService = new SimpleSignService(); + serviceCollection.set(ISignService, signService); + + // Remote Agent + const remoteAgentService = this._register(new RemoteAgentService(this.environmentService, this.productService, remoteAuthorityResolverService, signService, logService)); + serviceCollection.set(IRemoteAgentService, remoteAgentService); + // Native Host const nativeHostService = new NativeHostService(this.configuration.windowId, mainProcessService) as INativeHostService; serviceCollection.set(INativeHostService, nativeHostService); @@ -190,12 +191,6 @@ class DesktopMain extends Disposable { const uriIdentityService = new UriIdentityService(fileService); serviceCollection.set(IUriIdentityService, uriIdentityService); - const connection = remoteAgentService.getConnection(); - if (connection) { - const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(remoteAgentService)); - fileService.registerProvider(Schemas.vscodeRemote, remoteFileSystemProvider); - } - // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! // @@ -210,6 +205,12 @@ class DesktopMain extends Disposable { // !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + const connection = remoteAgentService.getConnection(); + if (connection) { + const remoteFileSystemProvider = this._register(new RemoteFileSystemProvider(remoteAgentService)); + fileService.registerProvider(Schemas.vscodeRemote, remoteFileSystemProvider); + } + const services = await Promise.all([ this.createWorkspaceService().then(service => { diff --git a/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts b/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts index 18285df120c..6037e90b9fb 100644 --- a/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts +++ b/src/vs/workbench/electron-sandbox/sandbox.simpleservices.ts @@ -11,13 +11,9 @@ import { ISignService } from 'vs/platform/sign/common/sign'; import { URI } from 'vs/base/common/uri'; import { InMemoryFileSystemProvider } from 'vs/platform/files/common/inMemoryFilesystemProvider'; import { Event } from 'vs/base/common/event'; -import { IRemoteAgentConnection, IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; -import { IDiagnosticInfoOptions, IDiagnosticInfo } from 'vs/platform/diagnostics/common/diagnostics'; -import { IAddressProvider, ISocketFactory } from 'vs/platform/remote/common/remoteAgentConnection'; -import { IRemoteAgentEnvironment } from 'vs/platform/remote/common/remoteAgentEnvironment'; +import { IAddressProvider } from 'vs/platform/remote/common/remoteAgentConnection'; import { ITelemetryData, ITelemetryInfo, ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; -import { BrowserSocketFactory } from 'vs/platform/remote/browser/browserSocketFactory'; -import { ExtensionIdentifier, IExtension, IExtensionDescription } from 'vs/platform/extensions/common/extensions'; +import { IExtension } from 'vs/platform/extensions/common/extensions'; import { SimpleConfigurationService as BaseSimpleConfigurationService } from 'vs/editor/standalone/browser/simpleServices'; import { InMemoryStorageService } from 'vs/platform/storage/common/storage'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; @@ -413,28 +409,6 @@ module.exports = testRunner;`); //#endregion -//#region Remote - -export class SimpleRemoteAgentService implements IRemoteAgentService { - - declare readonly _serviceBrand: undefined; - - socketFactory: ISocketFactory = new BrowserSocketFactory(null); - - getConnection(): IRemoteAgentConnection | null { return null; } - async getEnvironment(bail?: boolean): Promise { return null; } - async getDiagnosticInfo(options: IDiagnosticInfoOptions): Promise { return undefined; } - async disableTelemetry(): Promise { } - async logTelemetry(eventName: string, data?: ITelemetryData): Promise { } - async flushTelemetry(): Promise { } - async getRawEnvironment(): Promise { return null; } - async scanExtensions(skipExtensions?: ExtensionIdentifier[]): Promise { return []; } - async scanSingleExtension(extensionLocation: URI, isBuiltin: boolean): Promise { return null; } - async whenExtensionsReady(): Promise { } -} - -//#endregion - //#region Backup File diff --git a/src/vs/workbench/services/configuration/electron-browser/configurationCache.ts b/src/vs/workbench/services/configuration/electron-sandbox/configurationCache.ts similarity index 99% rename from src/vs/workbench/services/configuration/electron-browser/configurationCache.ts rename to src/vs/workbench/services/configuration/electron-sandbox/configurationCache.ts index 6bc18a83882..e69c35e0c15 100644 --- a/src/vs/workbench/services/configuration/electron-browser/configurationCache.ts +++ b/src/vs/workbench/services/configuration/electron-sandbox/configurationCache.ts @@ -43,10 +43,8 @@ export class ConfigurationCache implements IConfigurationCache { } return cachedConfiguration; } - } - class CachedConfiguration { private cachedConfigurationFolderResource: URI; diff --git a/src/vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl.ts b/src/vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl.ts similarity index 100% rename from src/vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl.ts rename to src/vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl.ts index c4f7a5d62a4..d30623f6f1f 100644 --- a/src/vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl.ts +++ b/src/vs/workbench/services/remote/electron-sandbox/remoteAgentServiceImpl.ts @@ -3,6 +3,7 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import * as nls from 'vs/nls'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { IRemoteAuthorityResolverService, RemoteAuthorityResolverError } from 'vs/platform/remote/common/remoteAuthorityResolver'; import { IProductService } from 'vs/platform/product/common/productService'; @@ -12,7 +13,6 @@ import { ISignService } from 'vs/platform/sign/common/sign'; import { ILogService } from 'vs/platform/log/common/log'; import { IWorkbenchEnvironmentService } from 'vs/workbench/services/environment/common/environmentService'; import { INotificationService } from 'vs/platform/notification/common/notification'; -import * as nls from 'vs/nls'; import { Registry } from 'vs/platform/registry/common/platform'; import { IWorkbenchContribution, IWorkbenchContributionsRegistry, Extensions } from 'vs/workbench/common/contributions'; import { LifecyclePhase } from 'vs/workbench/services/lifecycle/common/lifecycle'; diff --git a/src/vs/workbench/workbench.desktop.main.ts b/src/vs/workbench/workbench.desktop.main.ts index abb042ce897..745412cf175 100644 --- a/src/vs/workbench/workbench.desktop.main.ts +++ b/src/vs/workbench/workbench.desktop.main.ts @@ -63,7 +63,6 @@ import 'vs/workbench/services/textfile/electron-browser/nativeTextFileService'; import 'vs/workbench/services/extensions/electron-browser/extensionService'; import 'vs/workbench/services/extensionManagement/electron-browser/extensionManagementServerService'; import 'vs/workbench/services/extensionManagement/electron-browser/extensionTipsService'; -import 'vs/workbench/services/remote/electron-browser/remoteAgentServiceImpl'; import 'vs/workbench/services/telemetry/electron-browser/telemetryService'; import 'vs/workbench/services/backup/electron-browser/backupFileService'; import 'vs/workbench/services/userDataSync/electron-browser/userDataSyncMachinesService'; From ff9fbcb077b097d7ffb074f04f6301476578abc3 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 18 Jan 2021 08:48:10 +0100 Subject: [PATCH 153/171] telemetry - lift some helpers to electron-sandbox --- .../parts/sandbox/electron-browser/preload.js | 1 + .../parts/sandbox/electron-sandbox/globals.ts | 6 ++++ .../sharedProcess/sharedProcessMain.ts | 7 ++-- src/vs/code/electron-main/app.ts | 7 ++-- src/vs/code/node/cliProcessMain.ts | 15 +++++---- .../{node => common}/commonProperties.ts | 33 +++++++++++-------- .../{node => common}/telemetryIpc.ts | 0 .../contrib/debug/node/debugHelperService.ts | 2 +- .../contrib/debug/node/telemetryApp.ts | 2 +- .../electron-browser/telemetryService.ts | 8 +++-- .../workbenchCommonProperties.ts | 7 ++-- .../electron-browser/commonProperties.test.ts | 28 ++++++++++++---- 12 files changed, 75 insertions(+), 41 deletions(-) rename src/vs/platform/telemetry/{node => common}/commonProperties.ts (78%) rename src/vs/platform/telemetry/{node => common}/telemetryIpc.ts (100%) rename src/vs/workbench/services/telemetry/{electron-browser => electron-sandbox}/workbenchCommonProperties.ts (88%) diff --git a/src/vs/base/parts/sandbox/electron-browser/preload.js b/src/vs/base/parts/sandbox/electron-browser/preload.js index a56dc129c85..11984805df6 100644 --- a/src/vs/base/parts/sandbox/electron-browser/preload.js +++ b/src/vs/base/parts/sandbox/electron-browser/preload.js @@ -125,6 +125,7 @@ */ process: { get platform() { return process.platform; }, + get arch() { return process.arch; }, get env() { return process.env; }, get versions() { return process.versions; }, get type() { return 'renderer'; }, diff --git a/src/vs/base/parts/sandbox/electron-sandbox/globals.ts b/src/vs/base/parts/sandbox/electron-sandbox/globals.ts index c548c2045ea..36fda091beb 100644 --- a/src/vs/base/parts/sandbox/electron-sandbox/globals.ts +++ b/src/vs/base/parts/sandbox/electron-sandbox/globals.ts @@ -14,6 +14,12 @@ export interface ISandboxNodeProcess extends INodeProcess { */ readonly platform: 'win32' | 'linux' | 'darwin'; + /** + * The process.arch property returns a string identifying the CPU architecture + * on which the Node.js process is running. + */ + readonly arch: string; + /** * The type will always be Electron renderer. */ diff --git a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts index 1781a467882..345404e4499 100644 --- a/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts +++ b/src/vs/code/electron-browser/sharedProcess/sharedProcessMain.ts @@ -5,6 +5,7 @@ import product from 'vs/platform/product/common/product'; import * as fs from 'fs'; +import { release } from 'os'; import { gracefulify } from 'graceful-fs'; import { Server as MessagePortServer } from 'vs/base/parts/ipc/electron-sandbox/ipc.mp'; import { StaticRouter, createChannelSender, createChannelReceiver } from 'vs/base/parts/ipc/common/ipc'; @@ -23,8 +24,8 @@ import { IRequestService } from 'vs/platform/request/common/request'; import { RequestService } from 'vs/platform/request/browser/requestService'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { combinedAppender, NullTelemetryService, ITelemetryAppender, NullAppender } from 'vs/platform/telemetry/common/telemetryUtils'; -import { resolveCommonProperties } from 'vs/platform/telemetry/node/commonProperties'; -import { TelemetryAppenderChannel } from 'vs/platform/telemetry/node/telemetryIpc'; +import { resolveCommonProperties } from 'vs/platform/telemetry/common/commonProperties'; +import { TelemetryAppenderChannel } from 'vs/platform/telemetry/common/telemetryIpc'; import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService'; import { AppInsightsAppender } from 'vs/platform/telemetry/node/appInsightsAppender'; import { ipcRenderer } from 'vs/base/parts/sandbox/electron-sandbox/globals'; @@ -213,7 +214,7 @@ class SharedProcessMain extends Disposable { telemetryService = new TelemetryService({ appender: telemetryAppender, - commonProperties: resolveCommonProperties(product.commit, product.version, this.configuration.machineId, product.msftInternalDomains, installSourcePath), + commonProperties: resolveCommonProperties(fileService, release(), process.arch, product.commit, product.version, this.configuration.machineId, product.msftInternalDomains, installSourcePath), sendErrorTelemetry: true, piiPaths: [appRoot, extensionsPath] }, configurationService); diff --git a/src/vs/code/electron-main/app.ts b/src/vs/code/electron-main/app.ts index 6368fd90f03..6a893ef49d3 100644 --- a/src/vs/code/electron-main/app.ts +++ b/src/vs/code/electron-main/app.ts @@ -4,6 +4,7 @@ *--------------------------------------------------------------------------------------------*/ import { app, ipcMain, systemPreferences, contentTracing, protocol, BrowserWindow, dialog, session } from 'electron'; +import { release } from 'os'; import { IProcessEnvironment, isWindows, isMacintosh, isLinux, isLinuxSnap } from 'vs/base/common/platform'; import { WindowsMainService } from 'vs/platform/windows/electron-main/windowsMainService'; import { IWindowOpenable } from 'vs/platform/windows/common/windows'; @@ -28,9 +29,9 @@ import { IOpenURLOptions, IURLService } from 'vs/platform/url/common/url'; import { URLHandlerChannelClient, URLHandlerRouter } from 'vs/platform/url/common/urlIpc'; import { ITelemetryService, machineIdKey } from 'vs/platform/telemetry/common/telemetry'; import { NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils'; -import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc'; +import { TelemetryAppenderClient } from 'vs/platform/telemetry/common/telemetryIpc'; import { TelemetryService, ITelemetryServiceConfig } from 'vs/platform/telemetry/common/telemetryService'; -import { resolveCommonProperties } from 'vs/platform/telemetry/node/commonProperties'; +import { resolveCommonProperties } from 'vs/platform/telemetry/common/commonProperties'; import product from 'vs/platform/product/common/product'; import { ProxyAuthHandler } from 'vs/code/electron-main/auth'; import { FileProtocolHandler } from 'vs/code/electron-main/protocol'; @@ -536,7 +537,7 @@ export class CodeApplication extends Disposable { if (!this.environmentService.isExtensionDevelopment && !this.environmentService.args['disable-telemetry'] && !!product.enableTelemetry) { const channel = getDelayedChannel(sharedProcessReady.then(client => client.getChannel('telemetryAppender'))); const appender = new TelemetryAppenderClient(channel); - const commonProperties = resolveCommonProperties(product.commit, product.version, machineId, product.msftInternalDomains, this.environmentService.installSourcePath); + const commonProperties = resolveCommonProperties(this.fileService, release(), process.arch, product.commit, product.version, machineId, product.msftInternalDomains, this.environmentService.installSourcePath); const piiPaths = [this.environmentService.appRoot, this.environmentService.extensionsPath]; const config: ITelemetryServiceConfig = { appender, commonProperties, piiPaths, sendErrorTelemetry: true }; diff --git a/src/vs/code/node/cliProcessMain.ts b/src/vs/code/node/cliProcessMain.ts index 84fa06d76d5..6fbc68199d0 100644 --- a/src/vs/code/node/cliProcessMain.ts +++ b/src/vs/code/node/cliProcessMain.ts @@ -3,11 +3,12 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ +import { release } from 'os'; import { localize } from 'vs/nls'; import { raceTimeout } from 'vs/base/common/async'; -import * as semver from 'vs/base/common/semver/semver'; +import { gt } from 'vs/base/common/semver/semver'; import product from 'vs/platform/product/common/product'; -import * as path from 'vs/base/common/path'; +import { isAbsolute, join } from 'vs/base/common/path'; import { ServiceCollection } from 'vs/platform/instantiation/common/serviceCollection'; import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation'; @@ -21,7 +22,7 @@ import { ExtensionGalleryService } from 'vs/platform/extensionManagement/common/ import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { combinedAppender, NullTelemetryService } from 'vs/platform/telemetry/common/telemetryUtils'; import { TelemetryService, ITelemetryServiceConfig } from 'vs/platform/telemetry/common/telemetryService'; -import { resolveCommonProperties } from 'vs/platform/telemetry/node/commonProperties'; +import { resolveCommonProperties } from 'vs/platform/telemetry/common/commonProperties'; import { IRequestService } from 'vs/platform/request/common/request'; import { RequestService } from 'vs/platform/request/node/requestService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; @@ -215,7 +216,7 @@ export class Main { } private async installVSIX(vsix: string, force: boolean): Promise { - vsix = path.isAbsolute(vsix) ? vsix : path.join(process.cwd(), vsix); + vsix = isAbsolute(vsix) ? vsix : join(process.cwd(), vsix); const manifest = await getManifest(vsix); const valid = await this.validate(manifest, force); if (valid) { @@ -293,7 +294,7 @@ export class Main { const extensionIdentifier = { id: getGalleryExtensionId(manifest.publisher, manifest.name) }; const installedExtensions = await this.extensionManagementService.getInstalled(ExtensionType.User); - const newer = installedExtensions.find(local => areSameExtensions(extensionIdentifier, local.identifier) && semver.gt(local.manifest.version, manifest.version)); + const newer = installedExtensions.find(local => areSameExtensions(extensionIdentifier, local.identifier) && gt(local.manifest.version, manifest.version)); if (newer && !force) { console.log(localize('forceDowngrade', "A newer version of extension '{0}' v{1} is already installed. Use '--force' option to downgrade to older version.", newer.identifier.id, newer.manifest.version, manifest.version)); @@ -309,7 +310,7 @@ export class Main { return extensionDescription; } - const zipPath = path.isAbsolute(extensionDescription) ? extensionDescription : path.join(process.cwd(), extensionDescription); + const zipPath = isAbsolute(extensionDescription) ? extensionDescription : join(process.cwd(), extensionDescription); const manifest = await getManifest(zipPath); return getId(manifest); } @@ -424,7 +425,7 @@ export async function main(argv: NativeParsedArgs): Promise { const config: ITelemetryServiceConfig = { appender: combinedAppender(...appenders), sendErrorTelemetry: false, - commonProperties: resolveCommonProperties(product.commit, product.version, stateService.getItem('telemetry.machineId'), product.msftInternalDomains, installSourcePath), + commonProperties: resolveCommonProperties(fileService, release(), process.arch, product.commit, product.version, stateService.getItem('telemetry.machineId'), product.msftInternalDomains, installSourcePath), piiPaths: [appRoot, extensionsPath] }; diff --git a/src/vs/platform/telemetry/node/commonProperties.ts b/src/vs/platform/telemetry/common/commonProperties.ts similarity index 78% rename from src/vs/platform/telemetry/node/commonProperties.ts rename to src/vs/platform/telemetry/common/commonProperties.ts index f0bdc6cf3a4..46f08b5d3ce 100644 --- a/src/vs/platform/telemetry/node/commonProperties.ts +++ b/src/vs/platform/telemetry/common/commonProperties.ts @@ -3,12 +3,16 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import * as Platform from 'vs/base/common/platform'; -import * as os from 'os'; -import * as uuid from 'vs/base/common/uuid'; -import { readFile } from 'vs/base/node/pfs'; +import { IFileService } from 'vs/platform/files/common/files'; +import { isLinuxSnap, PlatformToString, platform } from 'vs/base/common/platform'; +import { platform as nodePlatform, env } from 'vs/base/common/process'; +import { generateUuid } from 'vs/base/common/uuid'; +import { URI } from 'vs/base/common/uri'; export async function resolveCommonProperties( + fileService: IFileService, + release: string, + arch: string, commit: string | undefined, version: string | undefined, machineId: string | undefined, @@ -21,19 +25,19 @@ export async function resolveCommonProperties( // __GDPR__COMMON__ "common.machineId" : { "endPoint": "MacAddressHash", "classification": "EndUserPseudonymizedInformation", "purpose": "FeatureInsight" } result['common.machineId'] = machineId; // __GDPR__COMMON__ "sessionID" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - result['sessionID'] = uuid.generateUuid() + Date.now(); + result['sessionID'] = generateUuid() + Date.now(); // __GDPR__COMMON__ "commitHash" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } result['commitHash'] = commit; // __GDPR__COMMON__ "version" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } result['version'] = version; // __GDPR__COMMON__ "common.platformVersion" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - result['common.platformVersion'] = (os.release() || '').replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/, '$1$2$3'); + result['common.platformVersion'] = (release || '').replace(/^(\d+)(\.\d+)?(\.\d+)?(.*)/, '$1$2$3'); // __GDPR__COMMON__ "common.platform" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - result['common.platform'] = Platform.PlatformToString(Platform.platform); + result['common.platform'] = PlatformToString(platform); // __GDPR__COMMON__ "common.nodePlatform" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } - result['common.nodePlatform'] = process.platform; + result['common.nodePlatform'] = nodePlatform; // __GDPR__COMMON__ "common.nodeArch" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } - result['common.nodeArch'] = process.arch; + result['common.nodeArch'] = arch; // __GDPR__COMMON__ "common.product" : { "classification": "SystemMetaData", "purpose": "PerformanceAndHealth" } result['common.product'] = product || 'desktop'; @@ -64,16 +68,16 @@ export async function resolveCommonProperties( } }); - if (Platform.isLinuxSnap) { + if (isLinuxSnap) { // __GDPR__COMMON__ "common.snap" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } result['common.snap'] = 'true'; } try { - const contents = await readFile(installSourcePath, 'utf8'); + const contents = await fileService.readFile(URI.file(installSourcePath)); // __GDPR__COMMON__ "common.source" : { "classification": "SystemMetaData", "purpose": "FeatureInsight" } - result['common.source'] = contents.slice(0, 30); + result['common.source'] = contents.value.toString().slice(0, 30); } catch (error) { // ignore error } @@ -82,10 +86,11 @@ export async function resolveCommonProperties( } function verifyMicrosoftInternalDomain(domainList: readonly string[]): boolean { - if (!process || !process.env || !process.env['USERDNSDOMAIN']) { + const userDnsDomain = env['USERDNSDOMAIN']; + if (!userDnsDomain) { return false; } - const domain = process.env['USERDNSDOMAIN']!.toLowerCase(); + const domain = userDnsDomain.toLowerCase(); return domainList.some(msftDomain => domain === msftDomain); } diff --git a/src/vs/platform/telemetry/node/telemetryIpc.ts b/src/vs/platform/telemetry/common/telemetryIpc.ts similarity index 100% rename from src/vs/platform/telemetry/node/telemetryIpc.ts rename to src/vs/platform/telemetry/common/telemetryIpc.ts diff --git a/src/vs/workbench/contrib/debug/node/debugHelperService.ts b/src/vs/workbench/contrib/debug/node/debugHelperService.ts index 3e80786c7f4..05be0f7d8f5 100644 --- a/src/vs/workbench/contrib/debug/node/debugHelperService.ts +++ b/src/vs/workbench/contrib/debug/node/debugHelperService.ts @@ -5,7 +5,7 @@ import { IDebugHelperService } from 'vs/workbench/contrib/debug/common/debug'; import { Client as TelemetryClient } from 'vs/base/parts/ipc/node/ipc.cp'; -import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc'; +import { TelemetryAppenderClient } from 'vs/platform/telemetry/common/telemetryIpc'; import { FileAccess } from 'vs/base/common/network'; import { TelemetryService } from 'vs/platform/telemetry/common/telemetryService'; import { IConfigurationService } from 'vs/platform/configuration/common/configuration'; diff --git a/src/vs/workbench/contrib/debug/node/telemetryApp.ts b/src/vs/workbench/contrib/debug/node/telemetryApp.ts index 52507e4fd20..85597832ccd 100644 --- a/src/vs/workbench/contrib/debug/node/telemetryApp.ts +++ b/src/vs/workbench/contrib/debug/node/telemetryApp.ts @@ -5,7 +5,7 @@ import { Server } from 'vs/base/parts/ipc/node/ipc.cp'; import { AppInsightsAppender } from 'vs/platform/telemetry/node/appInsightsAppender'; -import { TelemetryAppenderChannel } from 'vs/platform/telemetry/node/telemetryIpc'; +import { TelemetryAppenderChannel } from 'vs/platform/telemetry/common/telemetryIpc'; const appender = new AppInsightsAppender(process.argv[2], JSON.parse(process.argv[3]), process.argv[4]); process.once('exit', () => appender.flush()); diff --git a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts index acabe9e4dc5..40ca288cfe6 100644 --- a/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts +++ b/src/vs/workbench/services/telemetry/electron-browser/telemetryService.ts @@ -10,12 +10,13 @@ import { Disposable } from 'vs/base/common/lifecycle'; import { INativeWorkbenchEnvironmentService } from 'vs/workbench/services/environment/electron-sandbox/environmentService'; import { IProductService } from 'vs/platform/product/common/productService'; import { ISharedProcessService } from 'vs/platform/ipc/electron-browser/sharedProcessService'; -import { TelemetryAppenderClient } from 'vs/platform/telemetry/node/telemetryIpc'; +import { TelemetryAppenderClient } from 'vs/platform/telemetry/common/telemetryIpc'; import { IStorageService } from 'vs/platform/storage/common/storage'; -import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/electron-browser/workbenchCommonProperties'; +import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/electron-sandbox/workbenchCommonProperties'; import { TelemetryService as BaseTelemetryService, ITelemetryServiceConfig } from 'vs/platform/telemetry/common/telemetryService'; import { registerSingleton } from 'vs/platform/instantiation/common/extensions'; import { ClassifiedEvent, StrictPropertyCheck, GDPRClassification } from 'vs/platform/telemetry/common/gdprTypings'; +import { IFileService } from 'vs/platform/files/common/files'; export class TelemetryService extends Disposable implements ITelemetryService { @@ -30,6 +31,7 @@ export class TelemetryService extends Disposable implements ITelemetryService { @ISharedProcessService sharedProcessService: ISharedProcessService, @IStorageService storageService: IStorageService, @IConfigurationService configurationService: IConfigurationService, + @IFileService fileService: IFileService ) { super(); @@ -37,7 +39,7 @@ export class TelemetryService extends Disposable implements ITelemetryService { const channel = sharedProcessService.getChannel('telemetryAppender'); const config: ITelemetryServiceConfig = { appender: new TelemetryAppenderClient(channel), - commonProperties: resolveWorkbenchCommonProperties(storageService, productService.commit, productService.version, environmentService.machineId, productService.msftInternalDomains, environmentService.installSourcePath, environmentService.remoteAuthority), + commonProperties: resolveWorkbenchCommonProperties(storageService, fileService, environmentService.os.release, productService.commit, productService.version, environmentService.machineId, productService.msftInternalDomains, environmentService.installSourcePath, environmentService.remoteAuthority), piiPaths: [environmentService.appRoot, environmentService.extensionsPath], sendErrorTelemetry: true }; diff --git a/src/vs/workbench/services/telemetry/electron-browser/workbenchCommonProperties.ts b/src/vs/workbench/services/telemetry/electron-sandbox/workbenchCommonProperties.ts similarity index 88% rename from src/vs/workbench/services/telemetry/electron-browser/workbenchCommonProperties.ts rename to src/vs/workbench/services/telemetry/electron-sandbox/workbenchCommonProperties.ts index 889e127c8c4..1c6e0dc124e 100644 --- a/src/vs/workbench/services/telemetry/electron-browser/workbenchCommonProperties.ts +++ b/src/vs/workbench/services/telemetry/electron-sandbox/workbenchCommonProperties.ts @@ -4,13 +4,16 @@ *--------------------------------------------------------------------------------------------*/ import { IStorageService, StorageScope } from 'vs/platform/storage/common/storage'; -import { resolveCommonProperties } from 'vs/platform/telemetry/node/commonProperties'; +import { resolveCommonProperties } from 'vs/platform/telemetry/common/commonProperties'; import { instanceStorageKey, firstSessionDateStorageKey, lastSessionDateStorageKey } from 'vs/platform/telemetry/common/telemetry'; import { cleanRemoteAuthority } from 'vs/platform/telemetry/common/telemetryUtils'; import { process } from 'vs/base/parts/sandbox/electron-sandbox/globals'; +import { IFileService } from 'vs/platform/files/common/files'; export async function resolveWorkbenchCommonProperties( storageService: IStorageService, + fileService: IFileService, + release: string, commit: string | undefined, version: string | undefined, machineId: string, @@ -18,7 +21,7 @@ export async function resolveWorkbenchCommonProperties( installSourcePath: string, remoteAuthority?: string ): Promise<{ [name: string]: string | boolean | undefined }> { - const result = await resolveCommonProperties(commit, version, machineId, msftInternalDomains, installSourcePath, undefined); + const result = await resolveCommonProperties(fileService, release, process.arch, commit, version, machineId, msftInternalDomains, installSourcePath); const instanceId = storageService.get(instanceStorageKey, StorageScope.GLOBAL)!; const firstSessionDate = storageService.get(firstSessionDateStorageKey, StorageScope.GLOBAL)!; const lastSessionDate = storageService.get(lastSessionDateStorageKey, StorageScope.GLOBAL)!; diff --git a/src/vs/workbench/services/telemetry/test/electron-browser/commonProperties.test.ts b/src/vs/workbench/services/telemetry/test/electron-browser/commonProperties.test.ts index 521110e2a3f..627abe2546f 100644 --- a/src/vs/workbench/services/telemetry/test/electron-browser/commonProperties.test.ts +++ b/src/vs/workbench/services/telemetry/test/electron-browser/commonProperties.test.ts @@ -6,11 +6,16 @@ import * as assert from 'assert'; import * as path from 'vs/base/common/path'; import * as os from 'os'; import * as fs from 'fs'; -import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/electron-browser/workbenchCommonProperties'; +import { resolveWorkbenchCommonProperties } from 'vs/workbench/services/telemetry/electron-sandbox/workbenchCommonProperties'; import { getRandomTestPath } from 'vs/base/test/node/testUtils'; import { IStorageService, StorageScope, InMemoryStorageService, StorageTarget } from 'vs/platform/storage/common/storage'; import { mkdirp, rimraf } from 'vs/base/node/pfs'; import { timeout } from 'vs/base/common/async'; +import { IFileService } from 'vs/platform/files/common/files'; +import { FileService } from 'vs/platform/files/common/fileService'; +import { NullLogService } from 'vs/platform/log/common/log'; +import { Schemas } from 'vs/base/common/network'; +import { DiskFileSystemProvider } from 'vs/platform/files/node/diskFileSystemProvider'; suite('Telemetry - common properties', function () { const parentDir = getRandomTestPath(os.tmpdir(), 'vsctests', 'telemetryservice'); @@ -19,19 +24,28 @@ suite('Telemetry - common properties', function () { const commit: string = (undefined)!; const version: string = (undefined)!; let testStorageService: IStorageService; + let testFileService: IFileService; + let diskFileSystemProvider: DiskFileSystemProvider; setup(() => { testStorageService = new InMemoryStorageService(); + const logService = new NullLogService(); + testFileService = new FileService(logService); + + diskFileSystemProvider = new DiskFileSystemProvider(logService); + testFileService.registerProvider(Schemas.file, diskFileSystemProvider); }); - teardown(done => { - rimraf(parentDir).then(done, done); + teardown(() => { + diskFileSystemProvider.dispose(); + + return rimraf(parentDir); }); test('default', async function () { await mkdirp(parentDir); fs.writeFileSync(installSource, 'my.install.source'); - const props = await resolveWorkbenchCommonProperties(testStorageService, commit, version, 'someMachineId', undefined, installSource); + const props = await resolveWorkbenchCommonProperties(testStorageService, testFileService, os.release(), commit, version, 'someMachineId', undefined, installSource); assert.ok('commitHash' in props); assert.ok('sessionID' in props); assert.ok('timestamp' in props); @@ -52,7 +66,7 @@ suite('Telemetry - common properties', function () { assert.ok('common.instanceId' in props, 'instanceId'); assert.ok('common.machineId' in props, 'machineId'); fs.unlinkSync(installSource); - const props_1 = await resolveWorkbenchCommonProperties(testStorageService, commit, version, 'someMachineId', undefined, installSource); + const props_1 = await resolveWorkbenchCommonProperties(testStorageService, testFileService, os.release(), commit, version, 'someMachineId', undefined, installSource); assert.ok(!('common.source' in props_1)); }); @@ -60,14 +74,14 @@ suite('Telemetry - common properties', function () { testStorageService.store('telemetry.lastSessionDate', new Date().toUTCString(), StorageScope.GLOBAL, StorageTarget.MACHINE); - const props = await resolveWorkbenchCommonProperties(testStorageService, commit, version, 'someMachineId', undefined, installSource); + const props = await resolveWorkbenchCommonProperties(testStorageService, testFileService, os.release(), commit, version, 'someMachineId', undefined, installSource); assert.ok('common.lastSessionDate' in props); // conditional, see below assert.ok('common.isNewSession' in props); assert.equal(props['common.isNewSession'], 0); }); test('values chance on ask', async function () { - const props = await resolveWorkbenchCommonProperties(testStorageService, commit, version, 'someMachineId', undefined, installSource); + const props = await resolveWorkbenchCommonProperties(testStorageService, testFileService, os.release(), commit, version, 'someMachineId', undefined, installSource); let value1 = props['common.sequence']; let value2 = props['common.sequence']; assert.ok(value1 !== value2, 'seq'); From 12ef541b365690968019d8b439c9a337defb8548 Mon Sep 17 00:00:00 2001 From: Benjamin Pasero Date: Mon, 18 Jan 2021 08:57:40 +0100 Subject: [PATCH 154/171] :up: distro --- package.json | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/package.json b/package.json index 2fe3b1305bc..1511ebc654f 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "code-oss-dev", "version": "1.53.0", - "distro": "85b8eb4a7b856b4bca8c5882d289776c13eab544", + "distro": "9e581f6c455b4b1e21341326fcdc67b68f03d908", "author": { "name": "Microsoft Corporation" }, @@ -216,4 +216,4 @@ "windows-mutex": "0.3.0", "windows-process-tree": "0.2.4" } -} \ No newline at end of file +} From 39edf4351b90267e8c7a35a3b58b615a1ff54fa7 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Mon, 18 Jan 2021 09:38:14 +0100 Subject: [PATCH 155/171] Trigger GH CI From 0a2b6d4a1c6cf31db2d1f7c8c9056d3b92699656 Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 18 Jan 2021 09:59:40 +0100 Subject: [PATCH 156/171] inline collapse all actions --- src/vs/workbench/contrib/comments/browser/commentsView.ts | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/comments/browser/commentsView.ts b/src/vs/workbench/contrib/comments/browser/commentsView.ts index e86a416f90f..ec5544fd835 100644 --- a/src/vs/workbench/contrib/comments/browser/commentsView.ts +++ b/src/vs/workbench/contrib/comments/browser/commentsView.ts @@ -7,7 +7,6 @@ import 'vs/css!./media/panel'; import * as nls from 'vs/nls'; import * as dom from 'vs/base/browser/dom'; import { basename } from 'vs/base/common/resources'; -import { CollapseAllAction } from 'vs/base/browser/ui/tree/treeDefaults'; import { isCodeEditor } from 'vs/editor/browser/editorBrowser'; import { IInstantiationService, ServicesAccessor } from 'vs/platform/instantiation/common/instantiation'; import { IThemeService } from 'vs/platform/theme/common/themeService'; @@ -137,7 +136,11 @@ export class CommentsPanel extends ViewPane { public collapseAll() { if (this.tree) { - new CollapseAllAction(this.tree, true).run(); + this.tree.collapseAll(); + this.tree.setSelection([]); + this.tree.setFocus([]); + this.tree.domFocus(); + this.tree.focusFirst(); } } From 5560c9f4da0065f90ec0d68ce1342f760088f8ad Mon Sep 17 00:00:00 2001 From: Sandeep Somavarapu Date: Mon, 18 Jan 2021 10:09:30 +0100 Subject: [PATCH 157/171] Fix #114455 --- .../test/browser/configurationEditingService.test.ts | 4 ++-- .../test/browser/configurationService.test.ts | 7 +++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/src/vs/workbench/services/configuration/test/browser/configurationEditingService.test.ts b/src/vs/workbench/services/configuration/test/browser/configurationEditingService.test.ts index 273c0b00f6e..d85f3bc8cf0 100644 --- a/src/vs/workbench/services/configuration/test/browser/configurationEditingService.test.ts +++ b/src/vs/workbench/services/configuration/test/browser/configurationEditingService.test.ts @@ -24,7 +24,6 @@ import { INotificationService } from 'vs/platform/notification/common/notificati import { ICommandService } from 'vs/platform/commands/common/commands'; import { CommandService } from 'vs/workbench/services/commands/common/commandService'; import { URI } from 'vs/base/common/uri'; -import { createHash } from 'crypto'; import { IRemoteAgentService } from 'vs/workbench/services/remote/common/remoteAgentService'; import { FileService } from 'vs/platform/files/common/fileService'; import { NullLogService } from 'vs/platform/log/common/log'; @@ -40,6 +39,7 @@ import { VSBuffer } from 'vs/base/common/buffer'; import { ConfigurationCache } from 'vs/workbench/services/configuration/browser/configurationCache'; import { RemoteAgentService } from 'vs/workbench/services/remote/browser/remoteAgentServiceImpl'; import { BrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; +import { hash } from 'vs/base/common/hash'; const ROOT = URI.file('tests').with({ scheme: 'vscode-tests' }); @@ -94,7 +94,7 @@ suite('ConfigurationEditingService', () => { workspaceService = disposables.add(new WorkspaceService({ configurationCache: new ConfigurationCache() }, environmentService, fileService, remoteAgentService, new UriIdentityService(fileService), new NullLogService())); instantiationService.stub(IWorkspaceContextService, workspaceService); - await workspaceService.initialize({ folder: workspaceFolder, id: createHash('md5').update(workspaceFolder.toString()).digest('hex') }); + await workspaceService.initialize({ folder: workspaceFolder, id: hash(workspaceFolder.toString()).toString(16) }); instantiationService.stub(IConfigurationService, workspaceService); instantiationService.stub(IKeybindingEditingService, disposables.add(instantiationService.createInstance(KeybindingsEditingService))); instantiationService.stub(ITextFileService, disposables.add(instantiationService.createInstance(TestTextFileService))); diff --git a/src/vs/workbench/services/configuration/test/browser/configurationService.test.ts b/src/vs/workbench/services/configuration/test/browser/configurationService.test.ts index e063d3dffff..276311fed09 100644 --- a/src/vs/workbench/services/configuration/test/browser/configurationService.test.ts +++ b/src/vs/workbench/services/configuration/test/browser/configurationService.test.ts @@ -22,7 +22,6 @@ import { ITextModelService } from 'vs/editor/common/services/resolverService'; import { TextModelResolverService } from 'vs/workbench/services/textmodelResolver/common/textModelResolverService'; import { IJSONEditingService } from 'vs/workbench/services/configuration/common/jsonEditing'; import { JSONEditingService } from 'vs/workbench/services/configuration/common/jsonEditingService'; -import { createHash } from 'crypto'; import { Schemas } from 'vs/base/common/network'; import { joinPath, dirname, basename } from 'vs/base/common/resources'; import { isLinux } from 'vs/base/common/platform'; @@ -46,10 +45,11 @@ import { ConfigurationCache as BrowserConfigurationCache } from 'vs/workbench/se import { BrowserWorkbenchEnvironmentService } from 'vs/workbench/services/environment/browser/environmentService'; import { RemoteAgentService } from 'vs/workbench/services/remote/browser/remoteAgentServiceImpl'; import { RemoteAuthorityResolverService } from 'vs/platform/remote/browser/remoteAuthorityResolverService'; +import { hash } from 'vs/base/common/hash'; function convertToWorkspacePayload(folder: URI): ISingleFolderWorkspaceInitializationPayload { return { - id: createHash('md5').update(folder.fsPath).digest('hex'), + id: hash(folder.toString()).toString(16), folder } as ISingleFolderWorkspaceInitializationPayload; } @@ -1974,8 +1974,7 @@ function getWorkspaceId(configPath: URI): string { if (!isLinux) { workspaceConfigPath = workspaceConfigPath.toLowerCase(); // sanitize for platform file system } - - return createHash('md5').update(workspaceConfigPath).digest('hex'); + return hash(workspaceConfigPath).toString(16); } export function getWorkspaceIdentifier(configPath: URI): IWorkspaceIdentifier { From c16956439b32c260b512fa0337f9488aca772f55 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Mon, 18 Jan 2021 10:11:05 +0100 Subject: [PATCH 158/171] Bust node module cache --- .github/workflows/ci.yml | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 4525bf8f1c7..09619a49f59 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -37,8 +37,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules9- + key: ${{ runner.os }}-cacheNodeModules10-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules10- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -100,8 +100,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules9- + key: ${{ runner.os }}-cacheNodeModules10-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules10- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -156,8 +156,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules9- + key: ${{ runner.os }}-cacheNodeModules10-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules10- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} @@ -209,8 +209,8 @@ jobs: uses: actions/cache@v2 with: path: "**/node_modules" - key: ${{ runner.os }}-cacheNodeModules9-${{ steps.nodeModulesCacheKey.outputs.value }} - restore-keys: ${{ runner.os }}-cacheNodeModules9- + key: ${{ runner.os }}-cacheNodeModules10-${{ steps.nodeModulesCacheKey.outputs.value }} + restore-keys: ${{ runner.os }}-cacheNodeModules10- - name: Get yarn cache directory path id: yarnCacheDirPath if: ${{ steps.cacheNodeModules.outputs.cache-hit != 'true' }} From 08f3bcec33d0bb530c4d52d337839919d4985532 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 18 Jan 2021 10:19:12 +0100 Subject: [PATCH 159/171] fix https://github.com/microsoft/vscode/issues/114518 --- src/vs/editor/contrib/suggest/suggestModel.ts | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/vs/editor/contrib/suggest/suggestModel.ts b/src/vs/editor/contrib/suggest/suggestModel.ts index 9a88e1ccc1d..747f78a4b4c 100644 --- a/src/vs/editor/contrib/suggest/suggestModel.ts +++ b/src/vs/editor/contrib/suggest/suggestModel.ts @@ -443,10 +443,6 @@ export class SuggestModel implements IDisposable { this._requestToken?.dispose(); - if (this._state === State.Idle) { - return; - } - if (!this._editor.hasModel()) { return; } @@ -456,6 +452,10 @@ export class SuggestModel implements IDisposable { clipboardText = await this._clipboardService.readText(); } + if (this._state === State.Idle) { + return; + } + const model = this._editor.getModel(); let items = completions.items; From 960014550452a07b621a697b42a405d66b33dfee Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Mon, 18 Jan 2021 11:01:10 +0100 Subject: [PATCH 160/171] Fix tunnel creation in web --- src/vs/workbench/services/remote/browser/tunnelServiceImpl.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/vs/workbench/services/remote/browser/tunnelServiceImpl.ts b/src/vs/workbench/services/remote/browser/tunnelServiceImpl.ts index e652d1ded49..4879d4b606a 100644 --- a/src/vs/workbench/services/remote/browser/tunnelServiceImpl.ts +++ b/src/vs/workbench/services/remote/browser/tunnelServiceImpl.ts @@ -25,7 +25,7 @@ export class TunnelService extends AbstractTunnelService { } if (this._tunnelProvider) { - this.createWithProvider(this._tunnelProvider, remoteHost, remotePort, localPort, elevateIfNeeded, isPublic); + return this.createWithProvider(this._tunnelProvider, remoteHost, remotePort, localPort, elevateIfNeeded, isPublic); } return undefined; } From 9441f1c6457b2ce30703bdd3a21772a6978e4d93 Mon Sep 17 00:00:00 2001 From: Jonathan Mataloni Date: Mon, 18 Jan 2021 12:02:53 +0100 Subject: [PATCH 161/171] Add support for npm scripts with a space (#113840) This PR fixes #113750 --- extensions/npm/src/npmView.ts | 2 +- extensions/npm/src/scriptHover.ts | 2 +- extensions/npm/src/tasks.ts | 35 +++++++++++++++++++++---------- 3 files changed, 26 insertions(+), 13 deletions(-) diff --git a/extensions/npm/src/npmView.ts b/extensions/npm/src/npmView.ts index 3b6bb01bc7c..d5497f82f13 100644 --- a/extensions/npm/src/npmView.ts +++ b/extensions/npm/src/npmView.ts @@ -194,7 +194,7 @@ export class NpmScriptsTreeDataProvider implements TreeDataProvider { if (!uri) { return; } - let task = await createTask(this.extensionContext, 'install', 'install', selection.folder.workspaceFolder, uri, true, undefined, []); + let task = await createTask(this.extensionContext, 'install', ['install'], selection.folder.workspaceFolder, uri, true, undefined, []); tasks.executeTask(task); } diff --git a/extensions/npm/src/scriptHover.ts b/extensions/npm/src/scriptHover.ts index 48482660f52..b216fb06442 100644 --- a/extensions/npm/src/scriptHover.ts +++ b/extensions/npm/src/scriptHover.ts @@ -103,7 +103,7 @@ export class NpmScriptHoverProvider implements HoverProvider { let documentUri = args.documentUri; let folder = workspace.getWorkspaceFolder(documentUri); if (folder) { - let task = await createTask(this.context, script, `run ${script}`, folder, documentUri); + let task = await createTask(this.context, script, ['run', script], folder, documentUri); await tasks.executeTask(task); } } diff --git a/extensions/npm/src/tasks.ts b/extensions/npm/src/tasks.ts index 509cef08317..fd289ae3949 100644 --- a/extensions/npm/src/tasks.ts +++ b/extensions/npm/src/tasks.ts @@ -5,7 +5,8 @@ import { TaskDefinition, Task, TaskGroup, WorkspaceFolder, RelativePattern, ShellExecution, Uri, workspace, - DebugConfiguration, debug, TaskProvider, TextDocument, tasks, TaskScope, QuickPickItem, window, Position, ExtensionContext, env + DebugConfiguration, debug, TaskProvider, TextDocument, tasks, TaskScope, QuickPickItem, window, Position, ExtensionContext, env, + ShellQuotedString, ShellQuoting } from 'vscode'; import * as path from 'path'; import * as fs from 'fs'; @@ -70,7 +71,11 @@ export class NpmTaskProvider implements TaskProvider { } else { packageJsonUri = _task.scope.uri.with({ path: _task.scope.uri.path + '/package.json' }); } - return createTask(this.context, kind, `${kind.script === INSTALL_SCRIPT ? '' : 'run '}${kind.script}`, _task.scope, packageJsonUri); + const cmd = [kind.script]; + if (kind.script !== INSTALL_SCRIPT) { + cmd.unshift('run'); + } + return createTask(this.context, kind, cmd, _task.scope, packageJsonUri); } return undefined; } @@ -276,7 +281,7 @@ async function provideNpmScriptsForFolder(context: ExtensionContext, packageJson for (const each of scripts.keys()) { const scriptValue = scripts.get(each)!; - const task = await createTask(context, each, `run ${each}`, folder!, packageJsonUri, showWarning, scriptValue.script); + const task = await createTask(context, each, ['run', each], folder!, packageJsonUri, showWarning, scriptValue.script); const lowerCaseTaskName = each.toLowerCase(); if (isBuildTask(lowerCaseTaskName)) { task.group = TaskGroup.Build; @@ -295,7 +300,7 @@ async function provideNpmScriptsForFolder(context: ExtensionContext, packageJson } // always add npm install (without a problem matcher) - result.push({ task: await createTask(context, INSTALL_SCRIPT, INSTALL_SCRIPT, folder, packageJsonUri, showWarning, 'install dependencies from package', []) }); + result.push({ task: await createTask(context, INSTALL_SCRIPT, [INSTALL_SCRIPT], folder, packageJsonUri, showWarning, 'install dependencies from package', []) }); return result; } @@ -306,7 +311,7 @@ export function getTaskName(script: string, relativePath: string | undefined) { return script; } -export async function createTask(context: ExtensionContext, script: NpmTaskDefinition | string, cmd: string, folder: WorkspaceFolder, packageJsonUri: Uri, showWarning: boolean = true, detail?: string, matcher?: any): Promise { +export async function createTask(context: ExtensionContext, script: NpmTaskDefinition | string, cmd: string[], folder: WorkspaceFolder, packageJsonUri: Uri, showWarning: boolean = true, detail?: string, matcher?: any): Promise { let kind: NpmTaskDefinition; if (typeof script === 'string') { kind = { type: 'npm', script: script }; @@ -315,11 +320,19 @@ export async function createTask(context: ExtensionContext, script: NpmTaskDefin } const packageManager = await getPackageManager(context, folder.uri, showWarning); - async function getCommandLine(cmd: string): Promise { - if (workspace.getConfiguration('npm', folder.uri).get('runSilent')) { - return `${packageManager} --silent ${cmd}`; + function getCommandLine(cmd: string[]): (string | ShellQuotedString)[] { + const result: (string | ShellQuotedString)[] = new Array(cmd.length); + for (let i = 0; i < cmd.length; i++) { + if (/\s/.test(cmd[i])) { + result[i] = { value: `${cmd[i]}`, quoting: ShellQuoting.Strong }; + } else { + result[i] = cmd[i]; + } } - return `${packageManager} ${cmd}`; + if (workspace.getConfiguration('npm', folder.uri).get('runSilent')) { + result.unshift('--silent'); + } + return result; } function getRelativePath(packageJsonUri: Uri): string { @@ -334,7 +347,7 @@ export async function createTask(context: ExtensionContext, script: NpmTaskDefin } let taskName = getTaskName(kind.script, relativePackageJson); let cwd = path.dirname(packageJsonUri.fsPath); - const task = new Task(kind, folder, taskName, 'npm', new ShellExecution(await getCommandLine(cmd), { cwd: cwd }), matcher); + const task = new Task(kind, folder, taskName, 'npm', new ShellExecution(packageManager, getCommandLine(cmd), { cwd: cwd }), matcher); task.detail = detail; return task; } @@ -379,7 +392,7 @@ export async function runScript(context: ExtensionContext, script: string, docum let uri = document.uri; let folder = workspace.getWorkspaceFolder(uri); if (folder) { - let task = await createTask(context, script, `run ${script}`, folder, uri); + let task = await createTask(context, script, ['run', script], folder, uri); tasks.executeTask(task); } } From c208ec384c92238418ef9ccc5428adc8b2331e55 Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 18 Jan 2021 12:05:11 +0100 Subject: [PATCH 162/171] :lipstick: move all scoring logic into _doScore --- src/vs/base/common/filters.ts | 122 ++++++++++--------- src/vs/base/test/common/filters.perf.test.ts | 3 + 2 files changed, 68 insertions(+), 57 deletions(-) diff --git a/src/vs/base/common/filters.ts b/src/vs/base/common/filters.ts index 1b67449821f..81c7a53b9f4 100644 --- a/src/vs/base/common/filters.ts +++ b/src/vs/base/common/filters.ts @@ -593,7 +593,7 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu let patternPos = patternStart; let wordPos = wordStart; - let hasStrongFirstMatch = false; + const hasStrongFirstMatch = [false]; // There will be a match, fill in tables for (row = 1, patternPos = patternStart; patternPos < patternLen; row++, patternPos++) { @@ -605,48 +605,22 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu for (column = minWordMatchPos - wordStart + 1, wordPos = minWordMatchPos; wordPos < nextMaxWordMatchPos; column++, wordPos++) { - const score = (wordPos > maxWordMatchPos ? -1 : _doScore(pattern, patternLow, patternPos, patternStart, word, wordLow, wordPos)); + let score = Number.MIN_SAFE_INTEGER; + let canComeDiag = false; - if (patternPos === patternStart && score > 1) { - hasStrongFirstMatch = true; + if (wordPos <= maxWordMatchPos) { + score = _doScore( + pattern, patternLow, patternPos, patternStart, + word, wordLow, wordPos, wordLen, wordStart, + _diag[row - 1][column - 1] === 0, + hasStrongFirstMatch + ); } - const canComeDiag = (score > 0); let diagScore = 0; - if (canComeDiag) { - diagScore = score; - - // Having a gap in the word match is penalized less if the gap occurs around natural boundaries e.g. aA, _a, .a - const isNaturalGapLocation = ( - isUpperCaseAtPos(wordPos, word, wordLow) - || isSeparatorAtPos(wordLow, wordPos - 1) - || isWhitespaceAtPos(wordLow, wordPos - 1) - ); - - if (row === 1) { - // first character in pattern - if (column > 1) { - // the first pattern character would match a word character that is not at the word start - // so introduce a penalty to account for the gap preceding this match - diagScore += -5 + (isNaturalGapLocation ? 2 : 0); - } - } else { - // column is guaranteed to be > 1 because we must have consumed at least one word character with the first row - diagScore += _table[row - 1][column - 1]; - if (_diag[row - 1][column - 1] === 0) { - // this would be the beginning of a new match (i.e. there would be a gap before this location) - diagScore += (isNaturalGapLocation ? 2 : 0); - } else { - // this is part of a contiguous match, so give it a slight bonus, but do so only if it would not be a prefered gap location - diagScore += (isNaturalGapLocation ? 0 : 1); - } - } - - if (wordPos + 1 === wordLen) { - // we always penalize gaps, but this gives unfair advantages to a match that would match the last character in the word - // so pretend there is a gap after the last character in the word to normalize things - diagScore += -5 + (isNaturalGapLocation ? 2 : 0); - } + if (score !== Number.MAX_SAFE_INTEGER) { + canComeDiag = true; + diagScore = score + _table[row - 1][column - 1]; } const canComeLeft = (wordPos > minWordMatchPos); @@ -679,7 +653,7 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu printTables(pattern, patternStart, word, wordStart); } - if (!hasStrongFirstMatch && !firstMatchCanBeWeak) { + if (!hasStrongFirstMatch[0] && !firstMatchCanBeWeak) { return undefined; } @@ -747,39 +721,73 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu return [finalScore, matches, wordStart]; } -function _doScore(pattern: string, patternLow: string, patternPos: number, patternStart: number, word: string, wordLow: string, wordPos: number) { +function _doScore( + pattern: string, patternLow: string, patternPos: number, patternStart: number, + word: string, wordLow: string, wordPos: number, wordLen: number, wordStart: number, + newMatchStart: boolean, + outFirstMatchStrong: boolean[], +): number { if (patternLow[patternPos] !== wordLow[wordPos]) { - return -1; + return Number.MIN_SAFE_INTEGER; } + + let score = 1; + let isGapLocation = false; if (wordPos === (patternPos - patternStart)) { // common prefix: `foobar <-> foobaz` // ^^^^^ - if (pattern[patternPos] === word[wordPos]) { - return 7; - } else { - return 5; - } + score = pattern[patternPos] === word[wordPos] ? 7 : 5; + } else if (isUpperCaseAtPos(wordPos, word, wordLow) && (wordPos === 0 || !isUpperCaseAtPos(wordPos - 1, word, wordLow))) { // hitting upper-case: `foo <-> forOthers` // ^^ ^ - if (pattern[patternPos] === word[wordPos]) { - return 7; - } else { - return 5; - } + score = pattern[patternPos] === word[wordPos] ? 7 : 5; + isGapLocation = true; + } else if (isSeparatorAtPos(wordLow, wordPos) && (wordPos === 0 || !isSeparatorAtPos(wordLow, wordPos - 1))) { // hitting a separator: `. <-> foo.bar` // ^ - return 5; + score = 5; } else if (isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1)) { // post separator: `foo <-> bar_foo` // ^^^ - return 5; - - } else { - return 1; + score = 5; + isGapLocation = true; } + + if (score > 1 && patternPos === patternStart) { + outFirstMatchStrong[0] = true; + } + + if (!isGapLocation) { + isGapLocation = isUpperCaseAtPos(wordPos, word, wordLow) || isSeparatorAtPos(wordLow, wordPos - 1) || isWhitespaceAtPos(wordLow, wordPos - 1); + } + + // + if (patternPos === patternStart) { // first character in pattern + if (wordPos > wordStart) { + // the first pattern character would match a word character that is not at the word start + // so introduce a penalty to account for the gap preceding this match + score -= isGapLocation ? 3 : 5; + } + } else { + if (newMatchStart) { + // this would be the beginning of a new match (i.e. there would be a gap before this location) + score += isGapLocation ? 2 : 0; + } else { + // this is part of a contiguous match, so give it a slight bonus, but do so only if it would not be a prefered gap location + score += isGapLocation ? 0 : 1; + } + } + + if (wordPos + 1 === wordLen) { + // we always penalize gaps, but this gives unfair advantages to a match that would match the last character in the word + // so pretend there is a gap after the last character in the word to normalize things + score -= isGapLocation ? 3 : 5; + } + + return score; } //#endregion diff --git a/src/vs/base/test/common/filters.perf.test.ts b/src/vs/base/test/common/filters.perf.test.ts index a0dda5ceaf2..a8b33d7fc8b 100644 --- a/src/vs/base/test/common/filters.perf.test.ts +++ b/src/vs/base/test/common/filters.perf.test.ts @@ -17,6 +17,9 @@ function perfSuite(name: string, callback: (this: Mocha.Suite) => void) { perfSuite('Performance - fuzzyMatch', function () { + // suiteSetup(() => console.profile()); + // suiteTeardown(() => console.profileEnd()); + console.log(`Matching ${data.length} items against ${patterns.length} patterns (${data.length * patterns.length} operations) `); function perfTest(name: string, match: filters.FuzzyScorer) { From 2ef04b24f4270aae311580545045fd3beed67e2e Mon Sep 17 00:00:00 2001 From: Johannes Rieken Date: Mon, 18 Jan 2021 12:13:09 +0100 Subject: [PATCH 163/171] :lipstick: --- src/vs/base/common/filters.ts | 32 +++++++++++++++++--------------- 1 file changed, 17 insertions(+), 15 deletions(-) diff --git a/src/vs/base/common/filters.ts b/src/vs/base/common/filters.ts index 81c7a53b9f4..e2f4625e251 100644 --- a/src/vs/base/common/filters.ts +++ b/src/vs/base/common/filters.ts @@ -576,17 +576,7 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu // Find the max matching word position for each pattern position // NOTE: the min matching word position was filled in above, in the `isPatternInWord` call - { - let patternPos = patternLen - 1; - let wordPos = wordLen - 1; - while (patternPos >= patternStart && wordPos >= wordStart) { - if (patternLow[patternPos] === wordLow[wordPos]) { - _maxWordMatchPos[patternPos] = wordPos; - patternPos--; - } - wordPos--; - } - } + _fillInMaxWordMatchPos(patternLen, wordLen, patternStart, wordStart, patternLow, wordLow); let row: number = 1; let column: number = 1; @@ -623,11 +613,11 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu diagScore = score + _table[row - 1][column - 1]; } - const canComeLeft = (wordPos > minWordMatchPos); - const leftScore = (canComeLeft ? _table[row][column - 1] + (_diag[row][column - 1] > 0 ? -5 : 0) : 0); // penalty for a gap start + const canComeLeft = wordPos > minWordMatchPos; + const leftScore = canComeLeft ? _table[row][column - 1] + (_diag[row][column - 1] > 0 ? -5 : 0) : 0; // penalty for a gap start - const canComeLeftLeft = (wordPos > minWordMatchPos + 1 && _diag[row][column - 1] > 0); - const leftLeftScore = (canComeLeftLeft ? _table[row][column - 2] + (_diag[row][column - 2] > 0 ? -5 : 0) : 0); // penalty for a gap start + const canComeLeftLeft = wordPos > minWordMatchPos + 1 && _diag[row][column - 1] > 0; + const leftLeftScore = canComeLeftLeft ? _table[row][column - 2] + (_diag[row][column - 2] > 0 ? -5 : 0) : 0; // penalty for a gap start if (canComeLeftLeft && (!canComeLeft || leftLeftScore >= leftScore) && (!canComeDiag || leftLeftScore >= diagScore)) { // always prefer choosing left left to jump over a diagonal because that means a match is earlier in the word @@ -721,6 +711,18 @@ export function fuzzyScore(pattern: string, patternLow: string, patternStart: nu return [finalScore, matches, wordStart]; } +function _fillInMaxWordMatchPos(patternLen: number, wordLen: number, patternStart: number, wordStart: number, patternLow: string, wordLow: string) { + let patternPos = patternLen - 1; + let wordPos = wordLen - 1; + while (patternPos >= patternStart && wordPos >= wordStart) { + if (patternLow[patternPos] === wordLow[wordPos]) { + _maxWordMatchPos[patternPos] = wordPos; + patternPos--; + } + wordPos--; + } +} + function _doScore( pattern: string, patternLow: string, patternPos: number, patternStart: number, word: string, wordLow: string, wordPos: number, wordLen: number, wordStart: number, From 667e41626f111ef9e77e10542e689798484b5013 Mon Sep 17 00:00:00 2001 From: isidor Date: Mon, 18 Jan 2021 13:37:04 +0100 Subject: [PATCH 164/171] explorer: if you can not undo, pass undo to editor fixes #111630 --- src/vs/workbench/contrib/files/browser/files.contribution.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/files/browser/files.contribution.ts b/src/vs/workbench/contrib/files/browser/files.contribution.ts index addb3572547..f4b223bf4cd 100644 --- a/src/vs/workbench/contrib/files/browser/files.contribution.ts +++ b/src/vs/workbench/contrib/files/browser/files.contribution.ts @@ -492,7 +492,7 @@ MenuRegistry.appendMenuItem(MenuId.MenubarViewMenu, { UndoCommand.addImplementation(110, (accessor: ServicesAccessor) => { const undoRedoService = accessor.get(IUndoRedoService); const explorerService = accessor.get(IExplorerService); - if (explorerService.hasViewFocus()) { + if (explorerService.hasViewFocus() && undoRedoService.canUndo(UNDO_REDO_SOURCE)) { undoRedoService.undo(UNDO_REDO_SOURCE); return true; } @@ -503,7 +503,7 @@ UndoCommand.addImplementation(110, (accessor: ServicesAccessor) => { RedoCommand.addImplementation(110, (accessor: ServicesAccessor) => { const undoRedoService = accessor.get(IUndoRedoService); const explorerService = accessor.get(IExplorerService); - if (explorerService.hasViewFocus()) { + if (explorerService.hasViewFocus() && undoRedoService.canRedo(UNDO_REDO_SOURCE)) { undoRedoService.redo(UNDO_REDO_SOURCE); return true; } From 7fa8f1aa7fb29055636365cec329b9ff02698488 Mon Sep 17 00:00:00 2001 From: Alex Ross Date: Mon, 18 Jan 2021 13:47:33 +0100 Subject: [PATCH 165/171] Remove plug icon from ports view Part of https://github.com/microsoft/vscode-internalbacklog/issues/1689 --- src/vs/workbench/contrib/remote/browser/tunnelView.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/contrib/remote/browser/tunnelView.ts b/src/vs/workbench/contrib/remote/browser/tunnelView.ts index 8b787a553f7..576bfa95869 100644 --- a/src/vs/workbench/contrib/remote/browser/tunnelView.ts +++ b/src/vs/workbench/contrib/remote/browser/tunnelView.ts @@ -42,7 +42,7 @@ import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; import { KeybindingsRegistry, KeybindingWeight } from 'vs/platform/keybinding/common/keybindingsRegistry'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { ActionViewItem } from 'vs/base/browser/ui/actionbar/actionViewItems'; -import { forwardPortIcon, openBrowserIcon, portIcon, portsViewIcon, privatePortIcon, publicPortIcon, stopForwardIcon } from 'vs/workbench/contrib/remote/browser/remoteIcons'; +import { forwardPortIcon, openBrowserIcon, portsViewIcon, privatePortIcon, publicPortIcon, stopForwardIcon } from 'vs/workbench/contrib/remote/browser/remoteIcons'; export const forwardedPortsViewEnabled = new RawContextKey('forwardedPortsViewEnabled', false); export const PORT_AUTO_FORWARD_SETTING = 'remote.autoForwardPorts'; @@ -519,7 +519,7 @@ class TunnelItem implements ITunnelItem { switch (this.privacy) { case TunnelPrivacy.Private: return privatePortIcon; case TunnelPrivacy.Public: return publicPortIcon; - default: return this.tunnelType === TunnelType.Detected || this.tunnelType === TunnelType.Forwarded ? portIcon : undefined; + default: return undefined; } } From ed8655201aef5b4f29137532aa6e748a9130bc43 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Mon, 18 Jan 2021 14:35:58 +0100 Subject: [PATCH 166/171] fix web extensions --- build/lib/extensions.ts | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/build/lib/extensions.ts b/build/lib/extensions.ts index ec683962805..9454d17f2b9 100644 --- a/build/lib/extensions.ts +++ b/build/lib/extensions.ts @@ -237,9 +237,13 @@ const excludedExtensions = [ 'vscode-custom-editor-tests', ]; -const marketplaceWebExtensions = [ - 'ms-vscode.references-view' -]; +const marketplaceWebExtensionsExclude = new Set([ + 'ms-vscode.node-debug', + 'ms-vscode.node-debug2', + 'ms-vscode.js-debug-companion', + 'ms-vscode.js-debug', + 'ms-vscode.vscode-js-profile-table' +]); interface IBuiltInExtension { name: string; @@ -307,7 +311,7 @@ export function packageLocalExtensionsStream(forWeb: boolean): Stream { export function packageMarketplaceExtensionsStream(forWeb: boolean): Stream { const marketplaceExtensionsDescriptions = [ - ...builtInExtensions.filter(({ name }) => (forWeb ? marketplaceWebExtensions.indexOf(name) >= 0 : true)), + ...builtInExtensions.filter(({ name }) => (forWeb ? !marketplaceWebExtensionsExclude.has(name) : true)), ...(forWeb ? webBuiltInExtensions : []) ]; const marketplaceExtensionsStream = minifyExtensionResources( From 09bc6fc64b136942e3669f77417fdc15648823d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Mon, 18 Jan 2021 14:43:24 +0100 Subject: [PATCH 167/171] Migrate to new deb repo (#114527) * migrate to new deb repo * improve deb migration --- build/gulpfile.vscode.linux.js | 5 ----- resources/linux/debian/postinst.template | 7 +++++-- 2 files changed, 5 insertions(+), 7 deletions(-) diff --git a/build/gulpfile.vscode.linux.js b/build/gulpfile.vscode.linux.js index 10bfe325b73..3423e86e8f3 100644 --- a/build/gulpfile.vscode.linux.js +++ b/build/gulpfile.vscode.linux.js @@ -95,11 +95,6 @@ function prepareDebPackage(arch) { const postinst = gulp.src('resources/linux/debian/postinst.template', { base: '.' }) .pipe(replace('@@NAME@@', product.applicationName)) - .pipe(replace('@@ARCHITECTURE@@', debArch)) - .pipe(replace('@@QUALITY@@', product.quality || '@@QUALITY@@')) - .pipe(replace('@@UPDATEURL@@', product.updateUrl || '@@UPDATEURL@@')) - .pipe(replace('@@REPOSITORY_NAME@@', arch === 'x64' ? 'vscode' : 'code')) - .pipe(replace('@@SUPPORTED_ARCHITECTURES@@', arch === 'x64' ? 'amd64' : 'amd64,arm64,armhf')) .pipe(rename('DEBIAN/postinst')); const all = es.merge(control, postinst, postrm, prerm, desktops, appdata, workspaceMime, icon, bash_completion, zsh_completion, code); diff --git a/resources/linux/debian/postinst.template b/resources/linux/debian/postinst.template index ef1b7d56810..c440312f331 100755 --- a/resources/linux/debian/postinst.template +++ b/resources/linux/debian/postinst.template @@ -66,13 +66,16 @@ NdCFTW7wY0Fb1fWJ+/KTsC4= if [ ! -f $CODE_SOURCE_PART ]; then # Write source list if it does not exist WRITE_SOURCE=1 - elif grep -q "# disabled on upgrade to" /etc/apt/sources.list.d/vscode.list; then + elif grep -Eq "http:\/\/packages\.microsoft\.com\/repos\/vscode" $CODE_SOURCE_PART; then + # Migrate from old repository + WRITE_SOURCE=1 + elif grep -q "# disabled on upgrade to" $CODE_SOURCE_PART; then # Write source list if it was disabled by OS upgrade WRITE_SOURCE=1 fi if [ "$WRITE_SOURCE" -eq "1" ]; then echo "### THIS FILE IS AUTOMATICALLY CONFIGURED ### # You may comment out this entry, but any other modifications may be lost. -deb [arch=@@SUPPORTED_ARCHITECTURES@@] http://packages.microsoft.com/repos/@@REPOSITORY_NAME@@ stable main" > $CODE_SOURCE_PART +deb [arch=amd64,arm64,armhf] http://packages.microsoft.com/repos/code stable main" > $CODE_SOURCE_PART fi fi From 9995d1282404a3f47a1be7e2f7817158a6fd6a9b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Mon, 18 Jan 2021 15:02:55 +0100 Subject: [PATCH 168/171] missing build output --- build/lib/builtInExtensions.js | 7 +++++++ build/lib/extensions.js | 13 ++++++++----- 2 files changed, 15 insertions(+), 5 deletions(-) diff --git a/build/lib/builtInExtensions.js b/build/lib/builtInExtensions.js index 54db11e0c46..9b8bcc9e000 100644 --- a/build/lib/builtInExtensions.js +++ b/build/lib/builtInExtensions.js @@ -56,6 +56,13 @@ function syncMarketplaceExtension(extension) { .on('end', () => log(ansiColors.blue('[marketplace]'), extension.name, ansiColors.green('✔︎'))); } function syncExtension(extension, controlState) { + if (extension.platforms) { + const platforms = new Set(extension.platforms); + if (!platforms.has(process.platform)) { + log(ansiColors.gray('[skip]'), `${extension.name}@${extension.version}: Platform '${process.platform}' not supported: [${extension.platforms}]`, ansiColors.green('✔︎')); + return es.readArray([]); + } + } switch (controlState) { case 'disabled': log(ansiColors.blue('[disabled]'), ansiColors.gray(extension.name)); diff --git a/build/lib/extensions.js b/build/lib/extensions.js index d0d3f88efc5..6e23f471f15 100644 --- a/build/lib/extensions.js +++ b/build/lib/extensions.js @@ -194,16 +194,19 @@ function fromMarketplace(extensionName, version, metadata) { exports.fromMarketplace = fromMarketplace; const excludedExtensions = [ 'vscode-api-tests', - 'vscode-colorize-tests', 'vscode-test-resolver', 'ms-vscode.node-debug', 'ms-vscode.node-debug2', 'vscode-notebook-tests', 'vscode-custom-editor-tests', ]; -const marketplaceWebExtensions = [ - 'ms-vscode.references-view' -]; +const marketplaceWebExtensionsExclude = new Set([ + 'ms-vscode.node-debug', + 'ms-vscode.node-debug2', + 'ms-vscode.js-debug-companion', + 'ms-vscode.js-debug', + 'ms-vscode.vscode-js-profile-table' +]); const productJson = JSON.parse(fs.readFileSync(path.join(__dirname, '../../product.json'), 'utf8')); const builtInExtensions = productJson.builtInExtensions || []; const webBuiltInExtensions = productJson.webBuiltInExtensions || []; @@ -246,7 +249,7 @@ function packageLocalExtensionsStream(forWeb) { exports.packageLocalExtensionsStream = packageLocalExtensionsStream; function packageMarketplaceExtensionsStream(forWeb) { const marketplaceExtensionsDescriptions = [ - ...builtInExtensions.filter(({ name }) => (forWeb ? marketplaceWebExtensions.indexOf(name) >= 0 : true)), + ...builtInExtensions.filter(({ name }) => (forWeb ? !marketplaceWebExtensionsExclude.has(name) : true)), ...(forWeb ? webBuiltInExtensions : []) ]; const marketplaceExtensionsStream = minifyExtensionResources(es.merge(...marketplaceExtensionsDescriptions From 407557ca234036307515b0d09201919512389d81 Mon Sep 17 00:00:00 2001 From: Sang <11912225+hantatsang@users.noreply.github.com> Date: Tue, 19 Jan 2021 01:20:15 +1100 Subject: [PATCH 169/171] Save file dialog: sort file types alphabetically (#114487) * save file dialog: sort file type alphabetically * save file dialog: refactor string compare --- .../services/dialogs/browser/abstractFileDialogService.ts | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts b/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts index 1cd34887e54..5e54a5ad4fa 100644 --- a/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts +++ b/src/vs/workbench/services/dialogs/browser/abstractFileDialogService.ts @@ -20,7 +20,7 @@ import { IOpenerService } from 'vs/platform/opener/common/opener'; import { IHostService } from 'vs/workbench/services/host/browser/host'; import Severity from 'vs/base/common/severity'; import { coalesce, distinct } from 'vs/base/common/arrays'; -import { trim } from 'vs/base/common/strings'; +import { compareIgnoreCase, trim } from 'vs/base/common/strings'; import { IModeService } from 'vs/editor/common/services/modeService'; import { ILabelService } from 'vs/platform/label/common/label'; import { IPathService } from 'vs/workbench/services/path/common/pathService'; @@ -275,7 +275,9 @@ export abstract class AbstractFileDialogService implements IFileDialogService { // Build the file filter by using our known languages const ext: string | undefined = defaultUri ? resources.extname(defaultUri) : undefined; let matchingFilter: IFilter | undefined; - const registeredLanguageFilters: IFilter[] = coalesce(this.modeService.getRegisteredLanguageNames().map(languageName => { + + const registeredLanguageNames = this.modeService.getRegisteredLanguageNames().sort((a, b) => compareIgnoreCase(a, b)); + const registeredLanguageFilters: IFilter[] = coalesce(registeredLanguageNames.map(languageName => { const extensions = this.modeService.getExtensions(languageName); if (!extensions || !extensions.length) { return null; From 2388c80c74c91eee6cae04dcffc791cbd96910e4 Mon Sep 17 00:00:00 2001 From: Alexandru Dima Date: Mon, 18 Jan 2021 15:24:10 +0100 Subject: [PATCH 170/171] Add `confirmBeforeUndo` option on the undo redo element --- src/vs/platform/undoRedo/common/undoRedo.ts | 8 +++ .../undoRedo/common/undoRedoService.ts | 51 +++++++++++-------- 2 files changed, 37 insertions(+), 22 deletions(-) diff --git a/src/vs/platform/undoRedo/common/undoRedo.ts b/src/vs/platform/undoRedo/common/undoRedo.ts index 021003bab8c..80512775d4c 100644 --- a/src/vs/platform/undoRedo/common/undoRedo.ts +++ b/src/vs/platform/undoRedo/common/undoRedo.ts @@ -18,6 +18,10 @@ export interface IResourceUndoRedoElement { readonly type: UndoRedoElementType.Resource; readonly resource: URI; readonly label: string; + /** + * Show a message to the user confirming when trying to undo this element + */ + readonly confirmBeforeUndo?: boolean; undo(): Promise | void; redo(): Promise | void; } @@ -26,6 +30,10 @@ export interface IWorkspaceUndoRedoElement { readonly type: UndoRedoElementType.Workspace; readonly resources: readonly URI[]; readonly label: string; + /** + * Show a message to the user confirming when trying to undo this element + */ + readonly confirmBeforeUndo?: boolean; undo(): Promise | void; redo(): Promise | void; diff --git a/src/vs/platform/undoRedo/common/undoRedoService.ts b/src/vs/platform/undoRedo/common/undoRedoService.ts index 2fb802fbce9..7e205e70783 100644 --- a/src/vs/platform/undoRedo/common/undoRedoService.ts +++ b/src/vs/platform/undoRedo/common/undoRedoService.ts @@ -27,6 +27,7 @@ class ResourceStackElement { public readonly type = UndoRedoElementType.Resource; public readonly actual: IUndoRedoElement; public readonly label: string; + public readonly confirmBeforeUndo: boolean; public readonly resourceLabel: string; public readonly strResource: string; @@ -41,6 +42,7 @@ class ResourceStackElement { constructor(actual: IUndoRedoElement, resourceLabel: string, strResource: string, groupId: number, groupOrder: number, sourceId: number, sourceOrder: number) { this.actual = actual; this.label = actual.label; + this.confirmBeforeUndo = actual.confirmBeforeUndo || false; this.resourceLabel = resourceLabel; this.strResource = strResource; this.resourceLabels = [this.resourceLabel]; @@ -129,6 +131,7 @@ class WorkspaceStackElement { public readonly type = UndoRedoElementType.Workspace; public readonly actual: IWorkspaceUndoRedoElement; public readonly label: string; + public readonly confirmBeforeUndo: boolean; public readonly resourceLabels: string[]; public readonly strResources: string[]; @@ -142,6 +145,7 @@ class WorkspaceStackElement { constructor(actual: IWorkspaceUndoRedoElement, resourceLabels: string[], strResources: string[], groupId: number, groupOrder: number, sourceId: number, sourceOrder: number) { this.actual = actual; this.label = actual.label; + this.confirmBeforeUndo = actual.confirmBeforeUndo || false; this.resourceLabels = resourceLabels; this.strResources = strResources; this.groupId = groupId; @@ -811,7 +815,7 @@ export class UndoRedoService implements IUndoRedoService { if (element.canSplit()) { this._splitPastWorkspaceElement(element, ignoreResources); this._notificationService.info(message); - return new WorkspaceVerificationError(this._undo(strResource)); + return new WorkspaceVerificationError(this._undo(strResource, 0, true)); } else { // Cannot safely split this workspace element => flush all undo/redo stacks for (const strResource of element.strResources) { @@ -899,13 +903,13 @@ export class UndoRedoService implements IUndoRedoService { return null; } - private _workspaceUndo(strResource: string, element: WorkspaceStackElement): Promise | void { + private _workspaceUndo(strResource: string, element: WorkspaceStackElement, undoConfirmed: boolean): Promise | void { const affectedEditStacks = this._getAffectedEditStacks(element); const verificationError = this._checkWorkspaceUndo(strResource, element, affectedEditStacks, /*invalidated resources will be checked after the prepare call*/false); if (verificationError) { return verificationError.returnValue; } - return this._confirmAndExecuteWorkspaceUndo(strResource, element, affectedEditStacks); + return this._confirmAndExecuteWorkspaceUndo(strResource, element, affectedEditStacks, undoConfirmed); } private _isPartOfUndoGroup(element: WorkspaceStackElement): boolean { @@ -933,7 +937,7 @@ export class UndoRedoService implements IUndoRedoService { return false; } - private async _confirmAndExecuteWorkspaceUndo(strResource: string, element: WorkspaceStackElement, editStackSnapshot: EditStackSnapshot): Promise { + private async _confirmAndExecuteWorkspaceUndo(strResource: string, element: WorkspaceStackElement, editStackSnapshot: EditStackSnapshot, undoConfirmed: boolean): Promise { if (element.canSplit() && !this._isPartOfUndoGroup(element)) { // this element can be split @@ -959,7 +963,7 @@ export class UndoRedoService implements IUndoRedoService { if (result.choice === 1) { // choice: undo this file this._splitPastWorkspaceElement(element, null); - return this._undo(strResource); + return this._undo(strResource, 0, true); } // choice: undo in all files @@ -969,6 +973,8 @@ export class UndoRedoService implements IUndoRedoService { if (verificationError1) { return verificationError1.returnValue; } + + undoConfirmed = true; } // prepare @@ -989,10 +995,10 @@ export class UndoRedoService implements IUndoRedoService { for (const editStack of editStackSnapshot.editStacks) { editStack.moveBackward(element); } - return this._safeInvokeWithLocks(element, () => element.actual.undo(), editStackSnapshot, cleanup, () => this._continueUndoInGroup(element.groupId)); + return this._safeInvokeWithLocks(element, () => element.actual.undo(), editStackSnapshot, cleanup, () => this._continueUndoInGroup(element.groupId, undoConfirmed)); } - private _resourceUndo(editStack: ResourceEditStack, element: ResourceStackElement): Promise | void { + private _resourceUndo(editStack: ResourceEditStack, element: ResourceStackElement, undoConfirmed: boolean): Promise | void { if (!element.isValid) { // invalid element => immediately flush edit stack! editStack.flushAllElements(); @@ -1008,7 +1014,7 @@ export class UndoRedoService implements IUndoRedoService { } return this._invokeResourcePrepare(element, (cleanup) => { editStack.moveBackward(element); - return this._safeInvokeWithLocks(element, () => element.actual.undo(), new EditStackSnapshot([editStack]), cleanup, () => this._continueUndoInGroup(element.groupId)); + return this._safeInvokeWithLocks(element, () => element.actual.undo(), new EditStackSnapshot([editStack]), cleanup, () => this._continueUndoInGroup(element.groupId, undoConfirmed)); }); } @@ -1037,29 +1043,29 @@ export class UndoRedoService implements IUndoRedoService { return [matchedElement, matchedStrResource]; } - private _continueUndoInGroup(groupId: number): Promise | void { + private _continueUndoInGroup(groupId: number, undoConfirmed: boolean): Promise | void { if (!groupId) { return; } const [, matchedStrResource] = this._findClosestUndoElementInGroup(groupId); if (matchedStrResource) { - return this._undo(matchedStrResource); + return this._undo(matchedStrResource, 0, undoConfirmed); } } public undo(resourceOrSource: URI | UndoRedoSource): Promise | void { if (resourceOrSource instanceof UndoRedoSource) { const [, matchedStrResource] = this._findClosestUndoElementWithSource(resourceOrSource.id); - return matchedStrResource ? this._undo(matchedStrResource, resourceOrSource.id) : undefined; + return matchedStrResource ? this._undo(matchedStrResource, resourceOrSource.id, false) : undefined; } if (typeof resourceOrSource === 'string') { - return this._undo(resourceOrSource); + return this._undo(resourceOrSource, 0, false); } - return this._undo(this.getUriComparisonKey(resourceOrSource)); + return this._undo(this.getUriComparisonKey(resourceOrSource), 0, false); } - private _undo(strResource: string, sourceId: number = 0): Promise | void { + private _undo(strResource: string, sourceId: number = 0, undoConfirmed: boolean): Promise | void { if (!this._editStacks.has(strResource)) { return; } @@ -1075,20 +1081,21 @@ export class UndoRedoService implements IUndoRedoService { const [matchedElement, matchedStrResource] = this._findClosestUndoElementInGroup(element.groupId); if (element !== matchedElement && matchedStrResource) { // there is an element in the same group that should be undone before this one - return this._undo(matchedStrResource); + return this._undo(matchedStrResource, sourceId, undoConfirmed); } } - if (element.sourceId !== sourceId) { - // Hit a different source, prompt for confirmation - return this._confirmDifferentSourceAndContinueUndo(strResource, element); + const shouldPromptForConfirmation = (element.sourceId !== sourceId || element.confirmBeforeUndo); + if (shouldPromptForConfirmation && !undoConfirmed) { + // Hit a different source or the element asks for prompt before undo, prompt for confirmation + return this._confirmAndContinueUndo(strResource, sourceId, element); } try { if (element.type === UndoRedoElementType.Workspace) { - return this._workspaceUndo(strResource, element); + return this._workspaceUndo(strResource, element, undoConfirmed); } else { - return this._resourceUndo(editStack, element); + return this._resourceUndo(editStack, element, undoConfirmed); } } finally { if (DEBUG) { @@ -1097,7 +1104,7 @@ export class UndoRedoService implements IUndoRedoService { } } - private async _confirmDifferentSourceAndContinueUndo(strResource: string, element: StackElement): Promise { + private async _confirmAndContinueUndo(strResource: string, sourceId: number, element: StackElement): Promise { const result = await this._dialogService.show( Severity.Info, nls.localize('confirmDifferentSource', "Would you like to undo '{0}'?", element.label), @@ -1116,7 +1123,7 @@ export class UndoRedoService implements IUndoRedoService { } // choice: undo - return this._undo(strResource, element.sourceId); + return this._undo(strResource, sourceId, true); } private _findClosestRedoElementWithSource(sourceId: number): [StackElement | null, string | null] { From 2bb41a14025c361bdf42a2956a842c43824fd7a6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jo=C3=A3o=20Moreno?= Date: Mon, 18 Jan 2021 15:47:31 +0100 Subject: [PATCH 171/171] dev script --- build/{dev/sync-extensions.js => dev.js} | 33 +++++++++++------------- build/package.json | 1 + build/yarn.lock | 5 ++++ 3 files changed, 21 insertions(+), 18 deletions(-) rename build/{dev/sync-extensions.js => dev.js} (67%) diff --git a/build/dev/sync-extensions.js b/build/dev.js similarity index 67% rename from build/dev/sync-extensions.js rename to build/dev.js index 9a626538927..ed5d5d30807 100644 --- a/build/dev/sync-extensions.js +++ b/build/dev.js @@ -6,17 +6,9 @@ const fs = require('fs').promises; const path = require('path'); const cp = require('child_process'); -const product = require('../../product.json'); -const root = path.resolve(path.join(__dirname, '..', '..', '..')); - -async function exists(path) { - try { - await fs.stat(path); - return true; - } catch { - return false; - } -} +const product = require('../product.json'); +const root = path.resolve(path.join(__dirname, '..', '..')); +const exists = (path) => fs.stat(path).then(() => true, () => false); async function exec(cmd, opts = {}) { return new Promise((c, e) => { @@ -30,14 +22,13 @@ async function cloneOrPull(ext) { const folder = path.join(root, folderName); if (!await exists(folder)) { - const url = `${ext.repo}.git`; - await exec(`git clone ${url}`, { cwd: root }); + await exec(`git clone ${ext.repo}.git`, { cwd: root }); } else { await exec(`git pull`, { cwd: folder }); } } -async function main() { +async function syncExtensions() { for (const ext of product.builtInExtensions) { console.log(`👉 ${ext.name}`); await cloneOrPull(ext); @@ -45,8 +36,14 @@ async function main() { } if (require.main === module) { - main().catch(err => { - console.error(err); - process.exit(1); - }); + const { program } = require('commander'); + + program.version('0.0.1'); + + program + .command('sync-extensions') + .description('Clone or pull extension repositories alongside vscode') + .action(syncExtensions); + + program.parseAsync(process.argv); } diff --git a/build/package.json b/build/package.json index 9e30ee53ef3..5e3f8f47afd 100644 --- a/build/package.json +++ b/build/package.json @@ -33,6 +33,7 @@ "@typescript-eslint/parser": "^3.3.0", "applicationinsights": "1.0.8", "azure-storage": "^2.1.0", + "commander": "^7.0.0", "electron-osx-sign": "^0.4.16", "esbuild": "^0.8.30", "iconv-lite-umd": "0.6.8", diff --git a/build/yarn.lock b/build/yarn.lock index b987d878a15..98f59d8e0d3 100644 --- a/build/yarn.lock +++ b/build/yarn.lock @@ -529,6 +529,11 @@ commander@^2.8.1: resolved "https://registry.yarnpkg.com/commander/-/commander-2.19.0.tgz#f6198aa84e5b83c46054b94ddedbfed5ee9ff12a" integrity sha512-6tvAOO+D6OENvRAh524Dh9jcfKTYDQAqvqezbCW82xj5X0pSrcpxtvRKHLG0yBY6SD7PSDrJaj+0AiOcKVd1Xg== +commander@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-7.0.0.tgz#3e2bbfd8bb6724760980988fb5b22b7ee6b71ab2" + integrity sha512-ovx/7NkTrnPuIV8sqk/GjUIIM1+iUQeqA3ye2VNpq9sVoiZsooObWlQy+OPWGI17GDaEoybuAGJm6U8yC077BA== + compare-version@^0.1.2: version "0.1.2" resolved "https://registry.yarnpkg.com/compare-version/-/compare-version-0.1.2.tgz#0162ec2d9351f5ddd59a9202cba935366a725080"